Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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
Java 通过finish方法调用onDestroy的活动_Java_Android - Fatal编程技术网

Java 通过finish方法调用onDestroy的活动

Java 通过finish方法调用onDestroy的活动,java,android,Java,Android,读了这篇关于android开发的文章,注意到页面末尾的一个小提示: 注意:系统在调用onDestroy()之后调用onDestroy() onPause()和onStop()在除一种情况外的所有情况下:当您调用 onCreate()方法中的finish()。在某些情况下,例如 当您的活动作为临时决策者启动时 另一个活动,您可以从onCreate()中调用finish(),以 破坏活动。在这种情况下,系统会立即调用 onDestroy()而不调用任何其他生命周期方法 根据本说明,finish()

读了这篇关于android开发的文章,注意到页面末尾的一个小提示:

注意:系统在调用onDestroy()之后调用onDestroy() onPause()和onStop()在除一种情况外的所有情况下:当您调用 onCreate()方法中的finish()。在某些情况下,例如 当您的活动作为临时决策者启动时 另一个活动,您可以从onCreate()中调用finish(),以 破坏活动。在这种情况下,系统会立即调用 onDestroy()而不调用任何其他生命周期方法

  • 根据本说明,
    finish()
    即使没有
    onPause()
    onStop()
    也会被调用,这是否意味着 建议使用onDestroy()方法调用 明确说明
    onPause()
    onStop()
    方法
  • 还是应该在那里复制代码?(在我看来这是一个糟糕的做法)
  • 是否需要知道这些方法是否已被调用, 这意味着这是否是一个“适当的”完成

您所说的“或者应该在那里复制代码”是什么意思?您可以重写onDestroy,并记录一些消息以检查是否调用了它。我的意思是:在从finish()调用onPause()和onStop()中的代码的情况下,onDestroy()中的代码是否也应该被调用,正如前面提到的,在这种情况下会跳过这些方法调用。否。你打算在
onPause
onStop
中输入什么代码?你为什么要在
onCreate
中调用
finish
?这只是我读这篇文章时想知道的一点,我现在还没有一个特定的场景,但我可以想象一个:假设我初始化了传感器或相机上的手柄,然后连接到外部资源(例如Web服务器),最后根据传感器或摄像头定义确定用户无法使用此活动(出于任何原因),并调用finish()方法,我仍然必须释放摄像头和/或摄像头,对吗?由于onPause()不会被调用,因此应该在onDestroy中执行,不是吗?除非在
onCreate
中调用
finish
,否则不会调用
onPause
。因此,在暂停时松开相机。检查文档。检查主题释放照相机。