アンドロイド用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. 状態マシンの永続性WorkFlow
- 2. 休止状態はSchemaExportと永続ユニット
- 3. デザインパターン:Railsの子状態からの親の集約状態
- 4. 状態デザインパターン - ASP .NETウェブフォーム
- 5. レルムの永続性のためのデザインパターン
- 6. 状態のデザインパターンがシングルトンを避ける
- 7. リクエストを介した状態の取得と永続化
- 8. フォールト状態に入った永続WCFクライアントの処理
- 9. 保存JPAでの非永続オブジェクトID(休止状態)
- 10. AsyncStorageで永続的なアプリケーション状態をインスタンス化します。
- 11. JavaのJDBC接続状態
- 12. TelerikのCheckBox状態を永続化するASP.NET MVCアプリケーションのページング中に
- 13. ID「xxxxx」のワークフローが状態永続ストアに見つかりません
- 14. C#ファイル/プロジェクト/ワークユニットの保存状態のデザインパターン
- 15. 2つの状態を持つListViewコントロールのデザインパターン?
- 16. 接続状態MySql Connector/NET
- 17. スレッド競合状態とrequires_newトランザクション属性を持つJava EE永続性例外
- 18. Tomcatの接続プーリング、アイドル状態の接続、接続の作成
- 19. 低メモリ状況(iphone)の持続スキームと状態データ
- 20. どのように私のアンドロイドアプリの状態を保存するには?
- 21. 他のアンドロイドアプリからのvimeoビデオのアップロードで無効な状態です
- 22. MVC 3の状態の永続性のためにビューにオブジェクトを格納する最も良い方法は?
- 23. SQL Serverのセッション状態の永続性はどのように機能しますか?
- 24. redux古い状態を接続する
- 25. Windows Mobile 6間欠接続状態NOPATHTODESTINATION
- 26. 状態が連続したSQLステートメント
- 27. JavaScript変数スコープ - 持続状態?
- 28. ブラックベリー|リモートデータベースを使用してローカルの永続ストレージを最新の状態に保つ
- 29. SQLAlchemyの:状態管理には、どのセッションでアンシリアライズインスタンスを永続化するよう
- 30. 有限状態マシン:複数の状態への1つの状態
フラグメントAPIをご覧ください – slezica