我遇到問題了。 當我第一次啓動我的android應用程序時,在主要活動中調用onCreate
和onResume
。但我只想被稱爲onCreate。Android onCreate onResume
我該怎麼辦?
我遇到問題了。 當我第一次啓動我的android應用程序時,在主要活動中調用onCreate
和onResume
。但我只想被稱爲onCreate。Android onCreate onResume
我該怎麼辦?
你不能做任何事情,因爲這是活動的生命週期是如何工作的。
一個圖,顯示了生命週期參見http://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycle。
好,謝謝..因此,如果的onResume叫任何時候也沒有辦法,使活動在一定的方式行動第一次訪問,並在另一種方式時被回叫..我是對的嗎? – Alessio 2011-05-30 12:44:54
@Alessio是的,看看'onRestart()'方法。見@ Fenix的答案。 – 2013-10-14 00:03:37
,你可以在生命週期的活動展示活動之前總是調用的onResume API中看到的。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
我想你可以做一個全局布爾值的第一次訪問並將其設置爲false。 然後重寫onResume並檢查變量。 如果爲false,則將其設置爲true並返回,如果爲true,則返回 ,請調用super.onResume。
應該工作,但我不知道這是否可以處理簡單,我沒有訪問SDK在這裏進行測試。
我會盡力感謝! – Alessio 2011-05-30 12:47:34
根據SDK文檔,您所看到的是預期的行爲。查看活動文檔中的流程圖 - Activity Lifecycle。
編程您可以通過保持一個實例成員跟蹤是否已的onResume之前被稱爲克服這個 - 它第一次被調用時,設置變量,例如返回
private boolean resumeHasRun = false;
@Override
protected void onResume() {
super.onResume();
if (!resumeHasRun) {
resumeHasRun = true;
return;
}
// Normal case behavior follows
}
當我嘗試執行此操作時,當我嘗試設置resumeHasRun = true時,會收到「Suspended(異常RuntimeException)」。有任何想法嗎? – proudgeekdad 2012-01-10 04:25:55
除了這個,你應該使用Activity的onRestart()方法,它恰好用於該用例。 – 2012-03-12 12:03:10
假設您的活動被停止了('onStopped()'),那麼@FenixVoltres是正確的,因此您應該使用'onRestart()'。 – 2013-10-14 00:01:02
正確的答案是使用Activity
的onRestart()
方法。這可能是你一直在尋找的東西。
不一定。只有在活動停止時才調用onRestart()。 – anon 2012-09-11 01:57:14
你說得對,但是上面問題的答案是將代碼從'onResume()'(也稱爲活動創建時調用)移動到'onRestart()',而不是,那是什麼意思。 – 2012-09-11 07:28:19
@bowmanb正確,但不知道他的意圖,在大多數情況下,'onRestart()'是你想要的。 – 2013-10-14 00:02:54
刪除onResume()如果你不want.it不會影響。 – Kakey 2011-05-30 11:29:40
檢查這個答案可能是有用的:http://stackoverflow.com/a/8516056/265167 – 2011-12-15 17:22:25