我有一个主要活动,有许多按钮 . 每个按钮都开始另一个活动 . 其中一项活动(称为MyPuzzlesActivitiy)有一个成员,必须从互联网服务器加载才能工作 . (该成员是从互联网上加载的谜题列表)该成员的正确位置是活动 . 即便如此,我想在用户实际按下启动活动的按钮之前加载它,以节省时间(等待来自互联网服务器的响应) .
我想过让这个成员保持静态并从主要活动开始,但对我来说似乎有点难看 . 有人有更好的想法来解决这个问题吗?
谢谢..
你是对的,在这种情况下静态是丑陋的 .
您可以将它存储在应用程序中:首先,您需要使用您设计的自定义类( class MyApplication extends Application )继承 Application ,然后在清单( application name="...package...MyApplication" )中声明它 .
class MyApplication extends Application
Application
application name="...package...MyApplication"
然后,您可以从任何活动中使用它来存储数据,并在需要时检索它 . 只要您的应用处于有效状态,您的数据就可用 . 因此,您可以从主活动中加载谜题列表,将其存储在应用程序中(只需在 MyApplication 中添加一个setter和getter作为您要存储的数据类型),然后从其他活动的 onCreate 中检索它 .
MyApplication
onCreate
public class MyApplication extends Application { private List<Puzzle> puzzles; public void setPuzzlesList(List<Puzzle> puzzles) { this.puzzles = puzzles; } public List<Puzzle> getPuzzlesList() { return puzzles; } }
从您的主要活动:
((MyApplication) getApplication).setPuzzlesList(..load your list of puzzles from your service...);
并在 MyPuzzlesActivity :
MyPuzzlesActivity
final List<Puzzle> puzzles = ((MyApplication) getApplication).getPuzzlesList();
1 回答
你是对的,在这种情况下静态是丑陋的 .
您可以将它存储在应用程序中:首先,您需要使用您设计的自定义类(
class MyApplication extends Application
)继承Application
,然后在清单(application name="...package...MyApplication"
)中声明它 .然后,您可以从任何活动中使用它来存储数据,并在需要时检索它 . 只要您的应用处于有效状态,您的数据就可用 . 因此,您可以从主活动中加载谜题列表,将其存储在应用程序中(只需在
MyApplication
中添加一个setter和getter作为您要存储的数据类型),然后从其他活动的onCreate
中检索它 .从您的主要活动:
并在
MyPuzzlesActivity
: