Вы правы, статика в этом случае безобразна.
Вы можете сохранить его в Приложении: сначала вам нужно создать подкласс 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();