Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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 - Fatal编程技术网

Android 无限生命周期服务

Android 无限生命周期服务,android,Android,我在活动中调用服务,但当我关闭应用程序时,服务将关闭。如何创建无限生命周期服务?还有,我如何在BroadcastReceiver中调用活动?不可能创建这样的东西 您可以做的最接近的事情是将您的服务设置为前台,请参见 如何创建无限生命周期服务 你不能。操作系统将在认为合适时终止您的进程,包括在用户请求时终止进程,例如通过任务杀手应用程序。请在设计应用程序时牢记这一点 我如何在广播接收器中调用活动 如果BroadcastReceiver是由活动通过registerReceiver()注册的,那么如果

我在活动中调用服务,但当我关闭应用程序时,服务将关闭。如何创建无限生命周期服务?还有,我如何在BroadcastReceiver中调用活动?

不可能创建这样的东西

您可以做的最接近的事情是将您的服务设置为前台,请参见

如何创建无限生命周期服务

你不能。操作系统将在认为合适时终止您的进程,包括在用户请求时终止进程,例如通过任务杀手应用程序。请在设计应用程序时牢记这一点

我如何在广播接收器中调用活动


如果
BroadcastReceiver
是由活动通过
registerReceiver()
注册的,那么如果
BroadcastReceiver
是活动的内部类,它可以像Java中的任何内部类一样,正常地调用活动上的方法。

如果希望服务在停止活动后继续运行,通过startService而不是bindService启动它。别忘了再停下来

启动活动的startActivity sendBroadcast以启动广播接收器
启动服务以启动活动。

但当我在启动时调用BroadcastReceiver时,请完成并启动此BroadcastReceive内的服务。服务无限期地运行。@Vinix:不,它没有。正如我所写的,操作系统会在它认为合适的时候终止你的进程,包括在用户请求时终止它,比如通过任务杀手应用程序。好的,我真正需要的是,每隔10分钟,在后台处理一个HTTPRequest,而不使用UI。这是可能的?@Vinix:当然可以,但不是通过“无限”运行服务。使用
AlarmManager
每10分钟获取一次控制权。如果您使用的是
\u WAKEUP
-类型的闹钟(每10分钟唤醒一次设备,即使它处于睡眠模式),请使用my
WakefulIntentService
来完成实际的下载工作:但在30秒内,它停止工作,不需要在桌面或onDestroy上调用。如果Android喜欢,它会杀死它。例如资源。