アクティビティが 1 つあるシンプルな Android アプリがあります。このアクティビティは小さな XML ファイルをダウンロードし、その内容をユーザーに表示します。現在、アクティビティのonStart
メソッドでダウンロードを開始しています。
デバイスの向きが変わると、アクティビティは破棄され、再作成されると理解しています。そのため、ユーザーがアプリを回転すると、XML ファイルが再度ダウンロードされます。ファイルは 1 日に数回しか変更されないため、アプリでファイルを 1 回だけダウンロードするようにしたいと思います。したがって、ダウンロードしたデータを保持するオブジェクトを用意して、デバイスの向きが変わったときにローカル データを再利用できるようにしたいと思います。Android でデータを保持するための理想的なオブジェクトは何ですか?
iOS では、 を使用してAppDelegate
データを一度ダウンロードし、保持します。その後、データを表示する viewController は、ローカル データが破棄されて再作成された場合に、そのデータを再利用できます。
ベストアンサー1
アプリケーションの独自のサブクラスを作成し、それを AndroidManifest.xml で指定する必要があります。その後、このクラスの新しいインスタンスが作成され、アプリケーション全体からアクセスできるようになります。
例:
マニフェスト.xml
<application name="YourApp">
あなたのApp.java
public class YourApp extends Application {
private String yourState;
public void setState(String state){
yourState = state;
}
public String getState(){
return yourState;
}
}
あなたのアクティビティ.java
public class YourActivity extends Activity {
@Override
public void onCreate(Bundle bundle){
YourApp appState = ((YourApp)getApplicationContext());// you can use getApplication() as well in the activity
String state = appState.getState();
}
}