私の問題は、1時間後にアプリを再起動しようとすると、アプリケーションが空のデータで開かれ、カーネルがプロセスを強制終了せずにリソースを削除すると信じています。.thxを助けてください
2 に答える
データをある種の永続的なストレージに保存する必要があると思います。Androidプラットフォームで利用できるオプションはいくつかあります。
http://developer.android.com/guide/topics/data/data-storage.html
「空のデータ」とはどういう意味ですか?もちろん、いくつかの動的変数を意味する場合、それらの状態はアプリの再起動後に失われます。
アプリのクローズイベントを処理し、必要なデータを保存してから、必要なデータを復元する必要があります。
たとえば、onPause()
データを保存し、必要なデータをSharedPreferences
ファイルまたはに保存するアクティビティのメソッドを処理できますSQLite database
。そして、そのデータをonResume()
メソッドで復元します。
Androidとライフサイクルについて読むことをお勧めApps
しActivities
ますFragments
。
UPD:
静的データを使用してArrayList
そこにデータを保存しているとのことですが、もちろんアプリの再起動後にデータは失われます。ArrayList
したがって、から、file
またはdatabase
最も簡単なソリューションを使用してデータを保存し、に保存する必要がありますBundle
。
例:
/**
* Saving data
*/
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
super.onSaveInstanceState(savedInstanceState);
// Here you can save your data
// If you want to store your ArrayList, it should implement Parselable
savedInstanceState.putParcelableArrayList("STORE_KEY", yourArrayListWhichShouldImplementParcelable);
}
/**
* Restoring data
*/
@Override
public onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
yourArrayList = (YourArrayList) savedInstanceState.getParcelableArrayList("STORE_KEY");
}
このようなもの