【发布时间】:2018-10-27 17:06:47
【问题描述】:
我创建了一项服务,并希望始终运行该服务,直到我的手机重新启动或强制关闭。该服务应在后台运行。
创建服务和启动服务的示例代码:
启动服务:
Intent service = new Intent(getApplicationContext(), MyService.class);
getApplicationContext().startService(service);
服务:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO do something useful
HFLAG = true;
//smsHandler.sendEmptyMessageDelayed(DISPLAY_DATA, 1000);
return Service.START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO for communication return IBinder implementation
return null;
}
}
清单声明:
<service
android:name=".MyService"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
</service>
是否可以在应用程序暂停和其他任何情况下始终运行此服务。 一段时间后,我的应用程序暂停,服务也暂停或停止。 那么如何才能始终在后台运行此服务。
【问题讨论】:
-
如果不使其成为系统映像的一部分,则不可能。在某些情况下,Android 可能会完全杀死您的应用程序。当您的应用程序被终止时,它的服务将无法运行。
-
感谢您的回复,如何将我的应用程序作为系统映像的一部分。
-
您需要修改固件。如果这是可以接受的,我可以写一个答案。
-
你可以这样做......就像来电检查你的服务是否正在运行,如果没有,然后再次启动它......同样的方式使用媒体扫描仪,启动comlate,传入短信......等. 您必须检查每次服务是否运行,就像 Watsup 按摩服务一样。但我不建议你这样做。有关更多详细信息,请查看:stackoverflow.com/a/6091362/1168654 和 stackoverflow.com/a/4353653/1168654 和