2016-07-26 5 views
0

アクティビティのライフサイクルごとに、onCreateは最初の段階で発生し、私のアプリではonCreateでいくつかの重要なコードを実行します。問題は、ホームボタンを押したり、バックグラウンドでアプリを入れたりすると、onCreateを介してアクティビティが再作成されるのではなく、onResumeによって再作成されることです。onStopが発生したときにアクティビティを完全に終了する

私は、一度onStopメソッドが呼び出されると、次の起動時にonCreateから開始するように、アプリケーションが自動的に殺されることを望みます。それが私のアプリが1つだけの活動で作られているのに役立ちます。

(私はこれを必要とする理由はonResumeに必要なコードをコピーするバグを作成することです)

+0

「Activity.finish()」を呼び出すことはこのトリックを行うべきです...しかし、おそらく、onResumeの「バグ」を修正するほうがよいでしょう。 – Selvin

+4

私はあなたに前進して、これを成し遂げる方法を教えてくださいアクティビティのライフサイクル。あなたのコードにバグを修正するためにハックを導入する方法を尋ねています - あなたのコードを再考してください。そうしないと、バグをもっと修正する可能性が高くなります。 –

+2

このハックではなく、おそらくもっと優雅な解決策があります。より多くの情報を共有してください。 – Shaishav

答えて

1

あなたは、この動作を提供活動のマニフェストフラグandroid:noHistoryを見つけることができます。アクティビティがアクティビティスタックと完成(と呼ばれるそのfinish()法)から削除すべきかどうか

ユーザーはそれから移動しないと、それはもはや見え、画面上のだ - それが終了するかどう"true"、および"false"そうでない場合。デフォルト値は"false"です。

値が"true"の場合、アクティビティーは履歴トレースを残さないことを意味します。タスクのアクティビティスタックには残らないため、ユーザーはそのアクティビティスタックに戻ることはできません。このアクティビティの結果に対して別のアクティビティを開始すると、この場合、onActivityResult()は呼び出されません。

これは、ライフサイクルイベントを使用するよりも少し安全かもしれません。しかし、その後はどんな種類の国も失われることを覚えておいてください。

+0

まさに私が探していたものです。まもなく私はそれを実装して報告します。 – drogaleggera

関連する問題