在调用onPause()之前,活动是否会暂停?

时间:2017-03-09 14:24:27

标签: android

在调用方法onPause()之前,活动是否会暂停?谷歌参考说,当一个活动暂停时,系统可以在极低的内存情况下杀死它。我们也应该在onPause()中提交未保存的更改。所以我猜这个活动在调用onPause后进入暂停状态(但是我不知道如何证明它。 所以我想知道是否真的存在?是否有一种方法可以恢复当前的活动状态?

5 个答案:

答案 0 :(得分:2)

您可以在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");
}

答案 1 :(得分:1)

活动从callActivityOnPause的{​​{1}}课程暂停,非常简单:

/**
 * 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的{​​{1}}方法:

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; } onPause内被调用,所以你是对的:

  调用onPause()后,

活动进入暂停状态。

答案 2 :(得分:0)

我猜你可以添加一些变量来检查你的Activity的状态。 创建一个File f = new File("/storage/emulated/0/Download/libsvm/iris.output"); ,其变为真boolean isPaused,虚假onPause等。 每个你要检查的州都要做同样的敌人。 无论如何,我没有理由不相信官方文件。

答案 3 :(得分:0)

在活动暂停之前调用

onPause。

当活动进入暂停模式时,它仍然可以显示给用户!因此,当活动停止时(onStop),用户将无法再看到它。

你想要证明什么?

答案 4 :(得分:0)

onPause()方法是android中的预定义方法,因此它总是自动调用。