Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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 从“最近使用的应用”列表中删除应用时,会调用哪些生命周期事件?_Android_Android Service_Android Lifecycle - Fatal编程技术网

Android 从“最近使用的应用”列表中删除应用时,会调用哪些生命周期事件?

Android 从“最近使用的应用”列表中删除应用时,会调用哪些生命周期事件?,android,android-service,android-lifecycle,Android,Android Service,Android Lifecycle,据我从和中了解,当我的应用程序从最近的应用程序列表中删除时,仅调用了onDestroy() 在我的应用程序中,我有一个单一的活动,可以启动一个播放音乐的服务。在活动的onDestroy()中,甚至没有提到该服务,但当我的应用程序从列表中删除时,仍然会引发一个非法参数异常,指向所述服务: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, p

据我从和中了解,当我的应用程序从最近的应用程序列表中删除时,仅调用了
onDestroy()

在我的应用程序中,我有一个单一的活动,可以启动一个播放音乐的服务。在活动的
onDestroy()
中,甚至没有提到该服务,但当我的应用程序从列表中删除时,仍然会引发一个非法参数异常,指向所述服务:

Parameter specified as non-null is null: 
method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent 
at com.example.soulfetch2.BordunService.onStartCommand(BordunService.kt)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3468)`
正如在
ondestory()
中一样,甚至没有提到该服务,必须有其他东西试图访问该服务,但该服务已不存在。知道会是什么吗


如果同时调用了
onPause()
和/或
onStop()
,是否有办法将删除案例与调用这两个案例的其他案例区分开来?

当您打开最近调用的应用程序
onPause
onStop
时,因此,当您的活动被刷走时,生命周期中只剩下
onDestroy

对于例外情况,onStartCommand方法应具有以下签名

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int) : Int
按照

如果服务在其进程之后重新启动,则该值可能为null 已经走了,它以前除了 启动粘性兼容性


当您打开最近的应用程序时,会调用暂停和停止,因此当您的活动被刷走时,生命周期中只剩下onDestroy

对于例外情况,onStartCommand方法应具有以下签名

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int) : Int
按照

如果服务在其进程之后重新启动,则该值可能为null 已经走了,它以前除了 启动粘性兼容性

在onDestroy()中,甚至没有提到服务,必须有 试图访问不存在的服务的其他内容 不再知道会是什么吗

在某些手机中,当该应用程序从最近的应用程序中删除时,就像进入设置并强制关闭应用程序一样。因此,它会关闭与该应用程序相关的所有服务。这就是为什么你要面对这样的问题

如果还调用了onPause()和/或onStop(),是否有方法 将移除案例与这两种情况下的其他案例区分开来 你叫什么名字

据我所知,没有办法区分拆迁案件

但当我的应用程序运行时,仍然会引发非法参数异常 从列表中删除

为了解决这个问题,你可以看看Ge3ng发布的内容。它会解决你的问题

在onDestroy()中,甚至没有提到服务,必须有 试图访问不存在的服务的其他内容 不再知道会是什么吗

在某些手机中,当该应用程序从最近的应用程序中删除时,就像进入设置并强制关闭应用程序一样。因此,它会关闭与该应用程序相关的所有服务。这就是为什么你要面对这样的问题

如果还调用了onPause()和/或onStop(),是否有方法 将移除案例与这两种情况下的其他案例区分开来 你叫什么名字

据我所知,没有办法区分拆迁案件

但当我的应用程序运行时,仍然会引发非法参数异常 从列表中删除


为了解决这个问题,你可以看看Ge3ng发布的内容。它将解决您的问题。

您有一个
服务
,它从
onStartCommand()
返回
START\u STICKY
。当您从“最近的任务”列表中滑动任务时,Android会终止承载您的活动和
服务的操作系统进程

既然你告诉安卓(通过
START\u STICKY
)你希望你的
服务
在安卓杀死它的情况下重新启动,安卓同意你的请求并重新启动你的
服务
。当它执行此操作时,它使用
null
Intent
调用
onStartCommand()


注意:我假设在您的活动中根本没有调用
onDestroy()
。您可以将日志添加到
onDestroy()
以查看这是否正确。

您有一个
服务
,它从
onStartCommand()
返回
START
。当您从“最近的任务”列表中滑动任务时,Android会终止承载您的活动和
服务的操作系统进程

既然你告诉安卓(通过
START\u STICKY
)你希望你的
服务
在安卓杀死它的情况下重新启动,安卓同意你的请求并重新启动你的
服务
。当它执行此操作时,它使用
null
Intent
调用
onStartCommand()


注意:我假设在您的活动中根本没有调用
onDestroy()
。您可以将日志添加到
onDestroy()
以查看这是否正确。

如果我这样做,如何使用附加功能?如果我在签名中使intent为空,我会遇到问题:
If(intent.hasExtra(“Play”)
给我“仅允许”?。或!!”。对于
if(intent?.hasExtra(“Play”)
我得到一个类型不匹配(预期
intent
,发现
intent?
),对于
if(intent!!.hasExtra(“Play”)
我得到一个null指针异常,而不是非法参数。您必须处理null。如果意图为空,您可以提前返回,即
intent?:return Service.START\u NOT\u STICKY
您还应该查看传入的标志,因为它们将表示正在进行的操作。如果我这样做,我如何使用附加功能?如果我在签名中使intent为空,我会遇到问题:
If(intent.hasExtra(“Play”)
给我“仅允许”?。或!!”。对于
if(intent?.hasExtra(“Play”)
我得到一个类型不匹配(预期
intent
,找到
intent?
),对于
if(intent!!.hasExtra(“Play”)
我得到一个空指针异常指令