2017-07-29 10 views
0

私はちょうど引用符を表示するかなりシンプルなアプリケーションに取り組んでいます。
https://github.com/Ashanmaril/Quotr新しいアクティビティを起動するたびにonCreate()が呼び出されるのはなぜですか?

が、私はそれが一度だけ呼び出されることを想定して書いたのonCreate()でいくつかのセットアップコードを持っているが、それは一見ではありません。

は、ソースコードはここで見ることができるすべての場合。私は、新しいアクティビティが起動されるたびに、私の主なアクティビティのonCreate()関数が再び実行されるという事実によって、いくつかのバグが発生しました。

私はグーグルで回り、onCreate()はアプリケーションのライフサイクルで一度だけ呼び出されるべきだと主張しますが、私はonCreateにLog.vを追加しています。それは理にかなっていません。 launchModeをsingleTopに設定しようとしましたが、私の1つのアクティビティはfinish()で終了しますが、違いはありません。

+0

コードを投稿してください。 – earthw0rmjim

+0

たぶんあなたは毎回それを破壊しており、もう一度作成しています – Anil

+0

私は実際に投稿するものが何であるか本当に分かりません。インテントは次のようになります。 インテントlaunchQuoteListIntent =新しいインテント(Quotr.this、QuoteListActivity.class); startActivity(launchQuoteListIntent); これは、アクティビティが開始されるたびにonCreate()が呼び出される理由に関する一般的なAndroidに関する質問の詳細です。これは私のアプリに固有のものかどうかはわかりません。 –

答えて

-1

申し訳ありませんが、やっと私は解決しました。私は完全なばかだと思うが、最初にこのアプリを1年半前に起動したとき、私は最初のアプリだったので、私が何をしているのか分からなかった。

何らかの理由で、最初の新しいアクティビティを実装したときに、AppCompatActivityの代わりに主なアクティビティを拡張しました。そこで、新しいアクティビティでsuper.onCreate()とsuper.onDestroy()を呼び出すと、そのスーパークラスが呼び出されていました。これは主なアクティビティでした。なぜ今この問題が起きていたのかは分かりません。

このような間違いで開発に驚くほどのことが起こる可能性があります。だから、他の誰かが将来この間違いを犯し、この投稿によって助けられます。

0

あなた

onDestroy()

の作成がnDestroy(

oをしない限り、呼び出されることはありませんので、それは

と呼ばれていた場合にチェック)

をチェック10

といいます。

関連する問題