Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Activty上调用finish()可以保证在启动时创建?_Android - Fatal编程技术网

Android 在Activty上调用finish()可以保证在启动时创建?

Android 在Activty上调用finish()可以保证在启动时创建?,android,Android,我想知道我是否对一个活动调用finish(),是否保证会对其调用onDestroy(),然后当活动启动时,它不会被恢复,而是会调用onCreate() 我想知道这一点,因为我正面临一个奇怪的bug,深入了解它的细节与此无关,因此如果有人能够确认上述假设是否正确,我将不胜感激,正如Android类文档定义的那样,finish()确实会导致您的活动被破坏,从而onDestroy()将被称为: onDestroy() 在您的活动被销毁之前,您收到的最后一个呼叫。这可能是因为活动正在完成(有人对其调用f

我想知道我是否对一个活动调用finish(),是否保证会对其调用onDestroy(),然后当活动启动时,它不会被恢复,而是会调用onCreate()


我想知道这一点,因为我正面临一个奇怪的bug,深入了解它的细节与此无关,因此如果有人能够确认上述假设是否正确,我将不胜感激,正如Android类文档定义的那样,
finish()
确实会导致您的
活动被破坏,从而
onDestroy()
将被称为:

onDestroy()
在您的活动被销毁之前,您收到的最后一个呼叫。这可能是因为活动正在完成(有人对其调用finish()),或者是因为系统正在临时销毁此活动实例以节省空间。可以使用isFinishing()方法区分这两种情况

现在,如果您查看
活动
生命周期图:


您将看到,一旦关闭
活动
,它将从头开始重新创建,这意味着
onCreate()
将被调用。

正如Android类文档定义的那样,
finish()
确实会导致您的
活动
被销毁,从而
onDestroy()
将被称为:

onDestroy()
销毁活动之前收到的最后一个调用。发生这种情况的原因可能是活动正在完成(有人对其调用finish()),也可能是系统临时销毁活动的此实例以节省空间。可以使用isFinishing()方法区分这两种情况

现在,如果您查看
活动
生命周期图:


您将看到,一旦关闭
活动
,它将从头开始重新创建,这意味着将调用
onCreate()

关于android生命周期的问题太多了!但是关于您的bug体验,“它不会恢复,而是”。您可能会误解onResume的故意行为?onResume总是被调用,即使在onCreate之后也是如此。关于android的生命周期,这里有很多问题!但是关于您的bug体验,“它不是resume,而是”。您可能会误解onResume的故意行为?onResume始终被调用,即使在onCreate之后也是如此。