アンドロイド用onDestroy()が呼び出された場合、永続状態を試行しています。実際のアプリの機能性が永続性機能から切り離されるように、そのようなことをするために使用される一般的なデザインパターンは何ですか?たとえば、私はforループを持っていて、ゲーム内のすべてのプレイヤーを反復します。このアップデートは、ゲームの各ラウンドの終わりに発生します。アプリが更新の途中で破壊される可能性はありますか?それが起こった場合、更新されたプレイヤーを覚えておくためにどのようなロジックを含める必要がありますか?アンドロイドアプリの永続状態のデザインパターン
答えて
状態を保存する主なオプションは2つあります。インスタンス変数に関心がある場合は、Activity.onSaveInstanceStateをオーバーライドしてください。this questionの答えは、これを行う方法の良い例です。
永続データの場合は、SharedPreferences、SQLiteデータベースに格納するか、ファイルに書き込むことができます。この記事では、開始に役立つはずですhttp://developer.android.com/reference/android/app/Activity.html#SavingPersistentState
ユーザーは、電話をかけるなどの別のアプリに切り替えると、更新中にアプリが半減することがあります。
このような場合を考慮すると、onPause()は、アクティビティがシステムによって強制終了されたときに呼び出される最後のメソッドであるため、onDestroy()ではなくonPause()で状態を保持する必要があります。
そして、onPause()では、アップデートを実行するバックグラウンドサービスを開始することができます。バックグラウンドサービスは、アップデートを実行しているときにシステムによって殺される可能性が低いように、プロセスの優先順位を高くすることができます。
Activity lifecycleおよびProcessドキュメントで詳細を参照してください。
Androidはアプリを殺すことについて非常に良いことではありません。 onPauseまたはonDestoryを取得しても、取得しなくてもかまいません。あなたは、VMのシャットダウンを受信することができます。基本的に、あなたのアプリはいつでも死ぬことができます(メモリ不足)、ユーザーがそれを殺すなどしても警告は表示されません。基本的には、あなたがいつでも死ぬことができ、取得するとすぐに重要な状態を保存または更新することを前提とすることをお勧めします。
基本的には、私はSQLデータベースを作成するか、または共有プリファレンスを使用します。
- 1. KENDO UIグリッドと状態の永続性
- 2. 状態マシンの永続性WorkFlow
- 3. 休止状態はSchemaExportと永続ユニット
- 4. デザインパターン:Railsの子状態からの親の集約状態
- 5. 状態デザインパターン - ASP .NETウェブフォーム
- 6. レルムの永続性のためのデザインパターン
- 7. 状態のデザインパターンがシングルトンを避ける
- 8. Express.js/React.jsページのリフレッシュ時の状態の永続性
- 9. 治療スパイダーは状態を保存しません(永続状態)
- 10. Python gRPCサーバーのリクエスト間の永続状態?
- 11. フォールト状態に入った永続WCFクライアントの処理
- 12. リクエストを介した状態の取得と永続化
- 13. React Native - 状態を永続化するためのベストプラクティス
- 14. 保存JPAでの非永続オブジェクトID(休止状態)
- 15. ハイパーボーダーファブリックにおけるワールド状態の永続性
- 16. AsyncStorageで永続的なアプリケーション状態をインスタンス化します。
- 17. 休止状態:渡されたエンティティ永続
- 18. 状態マネージャがデータを永続化/取得しない
- 19. 永続的なボリューム状態を再起動する方法
- 20. React Nativeの永続状態:AsyncStorageから設定状態がコンポーネントを更新しません。
- 21. JavaのJDBC接続状態
- 22. php - 継続状態のパフォーマンス
- 23. TelerikのCheckBox状態を永続化するASP.NET MVCアプリケーションのページング中に
- 24. デバイスイーサネット接続状態
- 25. C#ファイル/プロジェクト/ワークユニットの保存状態のデザインパターン
- 26. 多くのストリーミングと共有状態のデザインパターン
- 27. 2つの状態を持つListViewコントロールのデザインパターン?
- 28. ID「xxxxx」のワークフローが状態永続ストアに見つかりません
- 29. OpenStackの仮想ノードが永続的に一時停止状態にある
- 30. Java:状態と継承を扱うためのデザインパターン
フラグメントAPIをご覧ください – slezica