我已经尝试了很长时间,在stackoverflow上寻找文档和不同的问题,但我还没有找到关键。
我需要启动一个完全关闭APP时不会死的服务。
我努力了
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
经许可:
<uses-permission android:name="android.permission.WAKE_LOCK" />
启动时:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock cpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
cpuWakeLock.acquire();
Intent intent = new Intent(this, WebViewService.class);
bindService(intent, serviceConnection, BIND_AUTO_CREATE);
还有没完没了的代码……有可能吗?
有什么建议吗?谢谢!
我在自己的应用程序中实现了类似的功能,它的作用是在每次服务死机以及设备重新启动时启动服务:
扩展广播接收器的类:
在我的服务本身:
在 AndroidManifest.xml 中:
编辑:该服务在我的 MainActivity 的 onCreate 中启动:
START_STICKY
要在关闭应用程序时保留服务,请使用onStartCommand()
根据您的代码,我看到您链接了一个服务,所以您正在做的是您的 Activity 与该服务交互:
在这种情况下,您可以做的是在前台使用服务(前台服务),这是通过startForeground()方法完成的:
我通过一个BroadcastReceiver定期执行的选项如下,你可以以这篇文章为例:
http://androidtrainningcenter.blogspot.mx/2013/05/how-to-make-android-service-unstoppable.html
1)在您启动设备时注册服务,这样您就不必打开应用程序来启动它:
2)添加类
BroadcastReceiver
代码以再次重新启动服务。3)创建Android Service类并在
onDestroy()
实现中启动服务并定义return START_STICKY
,onStartCommand()
以便在关闭应用程序后服务继续工作。@Andress Blend 适用于需要 isMyServiceRunning 方法的人。