Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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,Android提供了服务类,它对后台或非UI操作非常有用 我有一个关于服务生命周期的问题 我知道绑定服务的生命周期如下: 某些组件通过bindService()->onCreate()启动服务 onBind() 过程 绑定组件调用unbindService()->onUnbind() onDestroy() 我的问题是: 活动通常在onStop()上调用unbindService()。 但是,可以在不调用onStop()的情况下终止活动-我的意思是,当系统内存不足时,必须调用的唯一方法是onPa

Android提供了服务类,它对后台或非UI操作非常有用

我有一个关于服务生命周期的问题

我知道绑定服务的生命周期如下:

  • 某些组件通过bindService()->onCreate()启动服务
  • onBind()
  • 过程
  • 绑定组件调用unbindService()->onUnbind()
  • onDestroy()
  • 我的问题是:

    活动通常在onStop()上调用unbindService()。 但是,可以在不调用onStop()的情况下终止活动-我的意思是,当系统内存不足时,必须调用的唯一方法是onPause()。onStop()位于onPause()之后。在调用onStop()之前,可以销毁活动

    在本例中,服务未获得unbindService(),因此该服务仍在运行。是这样吗

    当然,这种情况很少发生,因为默认情况下服务是后台的。(服务更有可能被内存不足的系统终止。)然而,根据本文,“前台”服务的优先级高于“onPause()ed活动”。在这种情况下,绑定活动将首先被终止


    如果发生这种情况,服务不会结束吗?如果内存不再不足,那么将再次创建该活动,但将再次调用bindService(),因为它是一个新实例。此外,活动甚至可能无法重新启动。对不对?在这种情况下我能做什么?

    服务被终止,但是如果您从onStartCommand(…)返回“return”[并且您正在使用“startService(intent)”启动服务],服务将再次启动。即使活动未再次打开,服务也将重新启动


    我通过终止活动来运行和测试——服务会自动重新启动。(我所说的重启是指再次调用服务的onStartCommand(…)

    绑定服务通常只在为另一个应用程序组件提供服务时才存在,并且不会无限期地在后台运行。

    我对您的问题没有完整的答案,但是我想指出的是,前台服务必须是通过
    startForeground()
    启动的。因此,它成为一个已启动的服务,并且应该能够独立运行。活动A绑定服务S.2。活动A启动一个对话框样式的活动B(A仅称为onPause。A位于可见进程上)。3.活动B绑定位于前台进程上的服务。4.系统内存不足,因此A被终止。(A在顶部未呼叫)5。我明白你的意思。无论如何,我不知道Android是否真的破坏了这样一个组件。《Android开发者进程和线程指南》指出,为了恢复内存,可能会终止整个进程,但我没有看到任何关于终止单个组件的内容。(当然,每个进程的重要性取决于其组件的状态)嘿,我正在使用startService并返回START\u STICKY,但我的logcat中仍然出现此错误,并且服务无法重新启动。。