最近Androidアプリを初めて作成しました。これは、IRLカードゲームで2つのチームの得点を維持するための2つのカウンターを持つ、とてもシンプルなアプリです。とにかく、ユーザーが他のアプリを訪問することを選択している場合、アプリをexのように開いている。 whatsappをチェックして、アプリをバックグラウンドで実行させても大丈夫です...ユーザーが長い時間アプリを離れている場合、アプリはデフォルト状態にリセットされる傾向があります。 0にリセットすると非常にイライラします。これが起こらないようにする方法はありますか?ユーザーの返事やそれに類することがない限り、アプリの状態をメモリに保存するのはどうですか?アプリケーションカウンターは、基本的なTextviewオブジェクトです。前もって感謝します!アイドルタイムの後にAndroidアプリがリセットされる
答えて
プロセスの終了を停止することはできません。プロセスが終了した後でもそのデータを存続させたい場合は、SharedPreferences
などのデータベースにデータを保存してください。
状態は、savedInstanceState変数を使用して保存/復元できます。
@Override public void onCreate(Bundle savedInstanceState) { }
https://developer.android.com/guide/components/activities/activity-lifecycle.html
次に、ユーザはonPause()、onStop()イベントが呼び出される別のアプリを使用しています。しばらくすると、OSはメモリを解放してonDestroy()を呼び出します。これは、いかなる状態も保存する最後のチャンスです。
この状態は、しばらく続きます(〜30分程度)。それは十分かもしれません。 – CommonsWare
あなたがonSaveInstanceStateとonRestoreInstanceState
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt("int", 1);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
int myInt = savedInstanceState.getInt("int");
}
またはライブラリを使用を実装する必要があります。IcePick
ありがとうございます。これをどうやって使うのですか?これを私のコードに入れてもいいですか?私はこれを初めて知って申し訳ありませんし、コードは私には馴染みのないように見えます。 – Hackermaan
はい、使用できますが、独自の変数を設定できます。 ここにsavedInstanceState.putInt( "int"、1); ここと int myInt = savedInstanceState.getInt( "int"); –
- 1. Androidアプリケーションのロケール設定後にSharedPrefsがリセットされる
- 2. BorderStyleプロパティの値がリセットされた後にリセットされます
- 3. リブート後にmysqlグローバルパラメータがリセットされる
- 4. 長いアイドルタイムの後でVisual Studio 2008がクロールする
- 5. Androidアプリの再開時にグローバル変数の値がリセットされましたか?
- 6. Android - FlipView自体がリセットされる
- 7. Android/COSU:インストール後にアプリが自動実行される方法
- 8. スプラッシュ画面の後にAndroidアプリが続行されない
- 9. seekToが呼び出された後にAndroid MediaPlayerバッファリングされたデータがリセットされる
- 10. ノード/エクスプレスでアプリが再起動されるたびにセッションがリセットされる
- 11. Androidアプリが75秒後に自動消去されます
- 12. viewDidLayoutSubviewsの後にUIScrollViewのcontentOffsetがリセットされる
- 13. 電話リセット後にアプリが起動する
- 14. iOSアプリの通知バッジ数が0にリセットされない
- 15. ビルド後にバージョンコードフィールドが自動的に10000にリセットされる
- 16. アダプタのデータが変更された後にListViewをリセットする
- 17. ポストバック後にドロップダウンがリセットされるのはなぜですか?
- 18. RecyclerViewビューのデータがスクロールした後にリセットされる
- 19. getItem、setItemの後にChromeでlocalStorageがリセットされる
- 20. 緊急データの送信後にTCP接続がリセットされる
- 21. 各呼び出しの後にグローバル変数がリセットされる
- 22. 数日後にAndroidアプリがフリーズする
- 23. 着信後にAndroidアプリがクラッシュする
- 24. Androidのクラス間でグローバル変数が0にリセットされる
- 25. アプリの背後にAndroidのアクセス許可のダイアログが表示される
- 26. WebViewのFacebookログイン後にAndroidアプリの空白画面が表示される
- 27. フィルタ検索後に過渡フィールドがリセットされる
- 28. 再起動後にLinux環境変数がリセットされる
- 29. WaitOneが呼び出された直後にManualResetEventをリセットする
- 30. GPUカードが2秒後にリセットされる
あなたが終了されることからプロセスを防ぐことができます。https://developer.android.com/guide/components/services .html#フォアグラウンドですが、これはおそらくこのユーザーが望むものではありません。 – 01BTC10
@ 01BTC10:これは、プロセスが固執する可能性が高くなるだけです。これは保証ではなく、プロセスを終了させる方法もあります。 – CommonsWare