2017-07-29 31 views
0

我正在研究一個相當簡單的應用程序,只顯示引號。爲什麼每當啓動一項新活動時都會調用onCreate()?

所有的源代碼可以在這裏看到:
https://github.com/Ashanmaril/Quotr

我在的onCreate(),我用的假設寫道,它只會被調用一次一些設置代碼,但這似乎不是案件。我遇到了一些錯誤,這些錯誤是由於每次啓動新活動時,我的主要活動的onCreate()函數都會再次運行。

我搜索了一遍,人們聲稱onCreate()應該只在應用程序的生命週期中調用一次,但我已經在我的onCreate中添加了一個Log.v,並且可以清楚地看到它每次啓動活動時都會運行從它,這是沒有道理的。我已經嘗試將launchMode設置爲singleTop,我的一個活動以finish()結束,但這沒有什麼區別。

+0

發佈您的代碼。 – earthw0rmjim

+0

也許你每次都在摧毀它並重新創建 – Anil

+0

我真的不知道要發佈什麼內容。意圖啓動的樣子如下: 意圖launchQuoteListIntent = new Intent(Quotr.this,QuoteListActivity.class); startActivity(launchQuoteListIntent); 這是一個普遍的Android問題,爲什麼每當一個活動啓動時調用onCreate()。我不知道這是否是特定於我的應用程序。 –

回答

-1

好吧,我終於解決了。我想我是一個完全白癡,但是一年半前我第一次啓動這個應用時,我並不知道自己做了什麼,因爲它是我的第一個應用。

由於某些原因,當我實現第一個新的活動時,我使它擴展了主要活動而不是AppCompatActivity。所以我在新活動中對super.onCreate()和super.onDestroy()的調用稱爲它的超級類,這是主要活動。這讓我有很多理解爲什麼現在我有這個問題。

你可以非常驚訝地發現這樣的錯誤,所以也許別人會在未來犯這個錯誤,並得到這篇文章的幫助。

0

檢查

的onDestroy()

檢查,如果它被稱爲

因爲上創建永遠不會被調用,除非Ø

nDestroy()

叫做

相關問題