2011-10-19 14 views
0

ここでは何が欠けていますか?Android SDK onCreateが毎回呼び出されます

問題は、私はonCreateが呼び出される私のアプリを起動します。ホームボタンを押して放置し、アプリアイコンをもう一度押すと、onCreateがもう一度呼び出されます。活動は殺されていますよね?さて、もし私が家に帰って家に帰って家に帰ったら、実行中のアプリからアプリを選んで、中止したところから再開します。だから、アプリ内で家に帰っても活動が殺されるわけではない。アプリケーションを開くためにボタンを押して、アクティビティを殺しています。

私はEclipseを使用しています。私は最新のEclipseをダウンロードし、ADTを再ダウンロードしてAndroid SDKを更新しました。すべてが最新です。私もすべてのjavaをアンインストールし、最新のjdkとランタイムをダウンロードして再インストールしました。その後、アプリに再署名しました。

Eclipseの使用スケルトンサンプルプロジェクトを追加しました。デバッグモードでサインインし、私の本当のアプリと同じように、毎回再開します。リリースに署名し、それは問題があります:アプリを離れるためにホームを押して、アイコンを押してアプリを起動し、再びonCreateが呼び出されます。文字通り毎回。それは再開してはいけませんか?

問題はそれだけではない(私はBIONICを持っている)。それは他の人の電話機で起こり、エミュレータで発生しますが、リリースされると署名されたときにのみ発生します。デバッグ用に署名されていて、それは完璧です。

これに関するご意見はありますか?

+0

コードでonResume()を呼び出していますか? onCreate()を呼び出すと、それが原因かもしれません。 –

+0

スケルトンサンプルアプリケーションと私のアプリケーションの両方にonResume()オーバーライドがあります。どちらも含まれています:super.onResume(); – GregInWI2

答えて

3

questionによれば、フラグをsetFlags()で設定する必要があります。これにより、実行中のアクティビティは、アプリケーションが起動するたびに再作成されるのではなく、再利用されます。ホームボタンのアイコンを押すと、アクティビティが開始されます。ホーム画面は、アプリケーションが起動しているかどうかを知らないので、起動するだけです。ホームを長押しすると、実際に実行中であることが分かっているアクティビティに切り替わります。

もう1つのオプションは、android:launchModeからsingleTopに設定されているようです。

+1

singleTopが問題を修正しました。私は1年以上経ってからなぜそれが始まったのか分かりたかっただけです。ありがとう! – GregInWI2