簡體   English   中英

當我從main啟動活動時,將調用main的onCreate(),並在啟動活動完成后調用onDestroy()

[英]When I launch an activity from main, onCreate() of main is called, and when the launched activity is finished onDestroy() is called

這是我啟動活動的方式:

Intent intent = new Intent(Quotr.this, AddQuote.class);
startActivityForResult(intent, ADD_QUOTE_REQUEST);

該活動以對finish()的調用finish()

但是我遇到了我的onCreate()onDestroy()方法出現問題的情況,這些方法在我不希望調用的主活動(在Quotr.class中定義)中被調用。 我在這兩種方法中都添加了對Log.v()的調用,以查看被調用的內容以及何時以及何時奇怪地啟動活動,調用主活動的onCreate()以及完成新活動時,主要活動的onDestroy()方法被調用。

這導致了很多問題,而且我現在甚至都不知道如何解決它,因為我在主活動的onDestroy中進行的所有清理(我只希望在實際重新創建該活動時才運行它,而不是每次都運行該新活動已啟動),而該活動仍在使用中。

奇怪的是,這僅在此特定活動中發生。 據我所知,我以完全相同的方式調用並完成了所有其他活動意圖,但是它們不會像AddQuote.class這樣干擾主活動的生命周期。

我真的不知所措,無法再檢查一下。 我檢查了清單中是否有任何錯誤,檢查了我是否了解活動生命周期,但這確實沒有任何意義。

哦,天哪,所以我是個大白痴。

我正在開發一個應用程序,該應用程序在一年半的時間里慢慢建立起來,這是我第一次嘗試使用該應用程序。 由於某種原因,對於我在應用程序中進行的第一個新活動(遇到問題的活動),我正在擴展主要活動而不是AppCompat活動。 因此,我對super.onCreate()和super.onDestroy()的調用又回到了主活動,因為那是超類。

無論如何,我也會把它留在一個偶然的機會,也有人會犯這個錯誤。 希望它可以幫助某人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM