0

いくつかのデータ (時間、ユーザーの GPS 位置など) を記録するアプリがあります。これを実装したいと思います。ユーザーがボタンを押すと、「一時停止」または「終了」の 2 つのオプションを含む警告ダイアログが表示されます。onKeyDown メソッドをオーバーライドしてそれを行うことができます。ここで、「終了」はアプリを閉じることを意味し、データの記録は停止します。「一時停止」とは、ユーザーがアプリを数分間閉じてから、まったく同じ時点から再び開いたときに続行できることを意味する必要があります。

私はいくつかの調査を行いましたが、多くの点で混乱しました:

1)アクティビティが一時停止され、破棄されないことを何らかの形で保証できますか? さらに、finish() はアクティビティを破棄します。プログラムで一時停止する方法はありますか?

2) onPause のみが呼び出された場合、アプリを再度開いたときに onResume から開始すべきではありませんか? では、すべてのカウンター (通常は onCreate メソッドでゼロに設定します) は最後の状態のままにする必要がありますか?

3) 明らかな方法の 1 つは、カウンターなどの状態全体をデバイス データベースに保存し、ユーザーが再度開いたときにそれを復元することです。しかし、それはより苦痛であり、何よりもこれは良い習慣ですか?

明確にしていただきありがとうございます。

4

1 に答える 1

2

アクティビティが決して破棄されないことを保証することはできません。システムがメモリなどを必要とする場合、一部のアプリは自動的に閉じられますが、アプリの状態を変数「savedinstancestate」ウィッチに保存して、永続化することができますデータベース、または SD で。

アプリを一時停止する場合は、「onPause」メソッドを呼び出してから、「onResume」メソッドを呼び出す必要があります。これを行うと、最後の状態からアプリを再起動できます。

アプリを停止したい場合は、メソッド「onStop」のみを呼び出します

私はAndroidの達人ではありませんが、この回答があなたの質問に光を当てることができることを願っています;)

于 2012-04-07T11:50:14.693 に答える