あなたは正しいです、この場合静的です。
アプリケーションに保存することができます。まず、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();
???これらのどちらも該当しない場合(または、ダウンロードに関する問題を引き起こした他の要素)、ユーザーは主要なアクティビティであろうとパズルの活動であろうと、ダウンロードが完了するのを待たなければなりません。 「目にしばらくお待ちください...」ダイアログなど、ユーザーにリアルタイムのフィードバックを提供する方が、目に見えない方法で時間を費やすことを試みるよりも、特に失敗する可能性が高い場合は、はるかに優れています。 – Squonk