在調用方法onPause()之前活動是否暫停?谷歌的參考文獻說,當一個活動暫停時,它可以在極低的內存情況下被系統殺死。它也認爲我們應該在onPause()中提交未保存的更改,所以我猜想在調用onPause()之後活動進入暫停狀態)但我不知道如何證明。 所以我想知道是否是真的嗎?有沒有一種方法可以返回當前的活動狀態?在調用onPause()之前活動是否暫停?
回答
活動從Instrumentation
類暫停從callActivityOnPause
,這是非常簡單的:
/**
* Perform calling of an activity's {@link Activity#onPause} method. The
* default implementation simply calls through to that method.
*
* @param activity The activity being paused.
*/
public void callActivityOnPause(Activity activity) {
activity.performPause();
}
它只是調用Activity
的performPause
方法:
final void performPause() {
mDoReportFullyDrawn = false;
mFragments.dispatchPause();
mCalled = false;
onPause();
mResumed = false;
if (!mCalled && getApplicationInfo().targetSdkVersion
>= android.os.Build.VERSION_CODES.GINGERBREAD) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
" did not call through to super.onPause()");
}
mResumed = false;
}
正如你可以看到被稱爲內performPause
,所以你是對的:
調用onPause()後,活動進入暫停狀態。
非常感謝。現在我明白了爲什麼谷歌建議我們在onPause()中提交更改,因爲可以終止處於暫停模式的活動。因爲在onPause()方法返回之前該活動未暫停。 –
可以的Android生命週期https://developer.android.com/guide/components/activities/activity-lifecycle.html的官方文檔中找到:
「的onPause」被稱爲當活動進入後臺活動生命週期的一部分,但還沒有(還)被殺害。與onResume()的對應部分。
@Override
protected void onPause() {
super.onPause();
Log.v(TAG, "onPause is called");
}
你應該編輯你的答案,指出第一行的來源,因爲這是來自官方文檔;)這是更好的,因爲這不是一個簡單的句子,你發明了 – AxelH
謝謝,我更新它 –
我想你可以添加一些變量來檢查你的Activity的狀態。 創建一個boolean isPaused
這成爲true ,假onResume
等 做同樣的敵人你想檢查每個國家。 無論如何,我沒有看到不相信官方文件的理由。
onPause在活動暫停之前被調用。
當活動進入暫停模式時,它仍然可以顯示給用戶!所以當活動停止時(onStop),用戶不再可見。
你想要證明什麼?
onPause()方法是android中的一個預定義方法,因此它總是自動調用。
- 1. 在轉到其他活動之前暫停AsyncTask
- 2. 對話暫停調用活動?
- 3. 調用GLSurfaceView.onPause()後活動暫停超時()
- 4. 在JQuery AJAX之前暫停
- 5. 暫停的活動
- 6. 從一個活動暫停調用另一個活動
- 7. 停止ViewPager AutoScroll onPause的活動
- 8. 是在屏幕超時時調用的活動onPause方法?
- 9. 如何區分onDestroy是否會在onPause之後調用
- 10. async.whilst - 在調用之間暫停
- 11. 如何在程序調用之前暫停進程?
- 12. 無法暫停活動?
- 13. 如何暫停活動?
- 14. 無法暫停活動 - nullpointerexception
- 15. onPreated()onPause()和onStop()之間的活動
- 16. 如何在jsoup解析之前暫停?
- 17. Android:檢測視圖的父活動是否暫停
- 18. 可以檢測活動是否已暫停? (線程問題)
- 19. 當活動暫停時,定時器功能是否自動停止?
- 20. MadiaPlayer活動之間的開始 - 停止 - 暫停
- 21. 如何在其他活動結束之前停止活動?
- 22. 爲什麼我的jQuery動畫在動畫之前暫停?
- 23. 檢查是否因屏幕鎖定而調用了onPause活動狀態
- 24. 當活動暫停時Runnable停止
- 25. 在android上開始新的活動不會暫停當前活動?
- 26. 意圖恢復以前暫停的活動(從通知中調用)
- 27. 活動在暫停時崩潰
- 28. 爲什麼onSaveInstanceState在onPause之後調用
- 29. 如何在開始轉換之前阻止移動Safari暫停
- 30. 暫停過程之前磁盤已滿
你想從我們這裏得到什麼? –
好吧,他們似乎告訴它[在lyfecyle指南](https://developer.android.com/guide/components/activities/activity-lifecycle.html#onpause) – AxelH
看到這個鏈接https://github.com/xxv/android-lifecycle – g4s8