在开始活动之前加载活动成员

时间:2012-01-16 00:26:18

标签: android android-activity

我有一个带有许多按钮的主要活动。每个按钮都开始另一个活动。 其中一项活动(称为MyPuzzlesActivitiy)有一个成员,必须从互联网服务器加载才能工作。 (该成员是从互联网上加载的谜题列表) 这个成员的正确位置是活动。 即便如此,我想在用户实际按下启动活动的按钮之前加载它,以节省时间(等待来自互联网服务器的响应)。

我想过让这个成员静态并从主要活动开始,但对我来说似乎有点难看。 有人有更好的想法来解决这个问题吗?

谢谢..

1 个答案:

答案 0 :(得分:0)

你是对的,在这种情况下,静态是丑陋的。

您可以将它存储在应用程序中:首先,您需要将Application子类化为您设计的自定义类(class MyApplication extends Application),然后在清单(application name="...package...MyApplication")中声明它。

然后,您可以从任何活动中使用它来存储数据,并在需要时检索它。只要您的应用处于有效状态,您的数据就可用。因此,您可以从主活动中加载谜题列表,将其存储在应用程序中(只需在MyApplication中为要存储的数据类型添加setter和getter),然后从{{{ 1}}你的其他活动。

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