загрузка участника активности перед началом деятельности - PullRequest
2 голосов
/ 16 января 2012

У меня есть основной вид деятельности с несколькими кнопками.Каждая кнопка запускает другое действие.У одного из этих действий (называемого MyPuzzlesActivitiy) есть член, который должен быть загружен с интернет-сервера, чтобы работать.(Этот участник представляет собой список головоломок, которые должны быть загружены из Интернета). Правильное место этого участника - действие.Тем не менее, я хотел бы загрузить его до того, как пользователь фактически нажмет кнопку, которая запускает действие, чтобы сэкономить время (ожидания ответа от интернет-сервера).

Я думал о том, чтобы сделать этот элемент статичным иНачните с основной деятельности, но мне это кажется немного уродливым.У кого-нибудь есть лучшая идея, чтобы решить эту проблему?

Спасибо ..

1 Ответ

0 голосов
/ 16 января 2012

Вы правы, статика в этом случае безобразна.

Вы можете сохранить его в Приложении: сначала вам нужно создать подкласс Application с пользовательским классом, который вы разрабатываете (class MyApplication extends Application), а затем объявить его в манифесте (application name="...package...MyApplication").

Затем вы можете использовать его из любого вида деятельности для хранения данных и извлечения их в любое время. Пока ваше приложение активно, ваши данные будут доступны. Таким образом, вы можете загрузить список своих головоломок из основного занятия, сохранить его в приложении (просто добавьте установщик и получатель в 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:

final List<Puzzle> puzzles = ((MyApplication) getApplication).getPuzzlesList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...