私のAndroidアプリケーションでは、変数メンバーIDを置くための場所が必要です。問題は、オンラインAPIから取得しているため、それを保存/取得する方法を見つける必要があります
私はそれをカスタムクラスに入れようとしましたが、問題は、アクティビティを殺すと失われます、アプリケーションを拡張する方法があることも知っています。
だから私はグローバル変数を保存する最良の方法は何ですか?
私はインプリメントする必要があります:
ありがとう
更新:お返事ありがとうございます。 3つの変数(ブール値、フレーズなどの単純なデータ)のみがあり、アプリの再起動後に必要な場合、単純にshare prefを使用して保存する必要がありますか?それの欠点は何ですか?例えばパフォーマンスに有害ですか?ありがとう
Application
クラスを拡張するクラスでそれらを宣言することにより、Androidでグローバル変数を作成できます。
このようなもの。
class MyAppApplication extends Application {
private String mGlobalVarValue;
public String getGlobalVarValue() {
return mGlobalVarValue;
}
public void setGlobalVarValue(String str) {
mGlobalVarValue = str;
}
}
MainActivity.Java
class MainActivity extends Activity {
@Override
public void onCreate(Bundle b){
...
MyAppApplication mApp = ((MyAppApplication)getApplicationContext());
String globalVarValue = mApp.getGlobalVarValue();
...
}
}
これは、アプリケーションが破壊されない限り、値を保持します。アプリケーションインスタンスを破棄した後でも値を保存したい場合は、SharedPreferences
を使用してこれを行うことができます。
SharedPrefernces
の詳細はこちらから http://developer.Android.com/reference/Android/content/SharedPreferences.html
Application
を拡張してそこに置く)は大丈夫です。SharedPreferences
がおそらく最も使いやすいでしょう。このスタックオーバーフローの質問も参照してください。 アクティビティ間でデータを共有する最良の方法は何ですか?
SharedPreferences に保存し、sharedpreferenceHelperクラスを作成して取得/保存できます。
次のいずれかの方法で複数回使用したい値を保存する方が常に良いです。