いくつかのデータ (時間、ユーザーの GPS 位置など) を記録するアプリがあります。これを実装したいと思います。ユーザーがボタンを押すと、「一時停止」または「終了」の 2 つのオプションを含む警告ダイアログが表示されます。onKeyDown メソッドをオーバーライドしてそれを行うことができます。ここで、「終了」はアプリを閉じることを意味し、データの記録は停止します。「一時停止」とは、ユーザーがアプリを数分間閉じてから、まったく同じ時点から再び開いたときに続行できることを意味する必要があります。
私はいくつかの調査を行いましたが、多くの点で混乱しました:
1)アクティビティが一時停止され、破棄されないことを何らかの形で保証できますか? さらに、finish() はアクティビティを破棄します。プログラムで一時停止する方法はありますか?
2) onPause のみが呼び出された場合、アプリを再度開いたときに onResume から開始すべきではありませんか? では、すべてのカウンター (通常は onCreate メソッドでゼロに設定します) は最後の状態のままにする必要がありますか?
3) 明らかな方法の 1 つは、カウンターなどの状態全体をデバイス データベースに保存し、ユーザーが再度開いたときにそれを復元することです。しかし、それはより苦痛であり、何よりもこれは良い習慣ですか?
明確にしていただきありがとうございます。