2017-08-14 58 views
2

我有一個活動MainActivity從哪裏我打開一個活動TransactionActivity但我發生的問題是爲什麼我的MainActivity'sonStop()方法沒有被調用只有onPause()被調用。我在SO difference-between-onpause-and-onstop上看到過這篇文章,在這裏的答案是這樣寫的,當你的活動的某些部分仍然可見時,onStop()將不會被稱爲唯一的onpause將被調用,但對於我的情況,因爲MainActivity's是完全不可見的原因onStop()沒有被調用?爲什麼我的活動的onStop()沒有被調用,即使當我的活動完全不可見時,onPause()也會被調用?

這是因爲一些Activity leak什麼導致我的活動留在內存即使它完全不可見?

任何人,請賜教我這裏發生了什麼?

代碼MainActivity

Intent i = new Intent(MainActivity.this, TransactionActivity.class); 
Bundle b = new Bundle(); 
b.putInt("trans_type", 0); 
i.putExtras(b); 
startActivity(i); 
overridePendingTransition(0, 0); 

回答

0

調用TransactionActivity當您從以前的一個叫另一個活動,它被放在「之下」的新一個。 所以一旦你回來按下,以前的活動將顯示。 這是Android中的默認行爲。

僅在活動完成時調用onStop。 所以你可以,例如,在startActivity(ActivityB)之後調用ActivityA.finish()。

仍然不確定爲什麼你需要在onStop方法中使用代碼。這是很危險的,因爲如果需要釋放一些內存,系統本身可以調用onStop。有可能有更好的方式來做你想要達到的目標。

祝你好運!

+0

不,onStop()被調用時,活動變得完全不可見,你可以看到,在我在這裏提到的問題在這裏https://stackoverflow.com/questions/9266417/difference-between-onpause-and-onstop –

0

請檢查您的AndroidManifest.xml,也許您已設置透明主題。

相關問題