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