2012-04-07 5 views
0

私は、いくつかのデータ(時間、ユーザーのGPS位置など)を記録するアプリケーションを持っています。今私はこれを実装したい:ユーザーが戻るときに私は "一時停止"または "終了"の2つのオプションで警告ダイアログをポップします。私はそれをonKeyDownメソッドをオーバーライドすることができます。今度は「終了」はアプリを終了することを意味し、データの記録は停止されます。 「一時停止」とは、ユーザーが数分間アプリを終了してから、まったく同じポイントから再開したときに続行できることを意味します。アンドロイド:アプリケーションを一時停止して、同じ状態で再オープンします。

私はいくつかの研究を行っているが、私は多くの点で混乱してしまった:

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

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

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

事前にお問い合わせいただきありがとうございます。

+0

重複する質問。 http://stackoverflow.com/questions/10047770/is-it-possible-to-save-previous-activity/10047836#comment12855761_10047836 – Kuffs

答えて

2

あなたはアクティビティが破壊されないことを保証することはできません。システムにメモリが必要な場合、またはいくつかのアプリケーションを自動的に終了させる場合がありますが、変数 "savedinstancestate"持続性データベースに保存するか、またはSDに保存します。

アプリを一時停止したい場合は、「onPause」メソッドを呼び出してから、「onResume」メソッドを呼び出すと、最後の状態からアプリを再起動することができます。私は、Androidの主人ないんだけど、私はこの答えはあなたの質問についていくつかの光を投げることができることを願って「onStop」

あなただけのメソッドを呼び出して、アプリケーションを停止する場合;)

+0

あなたはonPauseまたはonResumeを呼び出さない。システムはこれをアクティビティライフサイクルの一環として実行します。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle – Kuffs

+1

はい、ただし、あなたがその部分で何か他のことをしたい場合や、間違っているかもしれません。 – Santanor

+0

しかし、私は警告ダイアログを実装するための "onkeydown"メソッドをオーバーライドしているので、ユーザーは何をすべきかを選択した後、アプリケーションを閉じるべきでしょうか?私はfinish()メソッドを呼び出し、それがアクティビティを破壊すると思います。私はそれを呼び出さない場合、アプリは閉じていない – george

関連する問題