我正在使用服务通过我的应用收集永久数据。即使该应用被终止,我也需要该服务来继续收集数据。 但是,当我手动终止该应用程序时(从任务管理器中滑动该应用程序),该服务不会重新启动。
这是我的代码:
public class ServiceAlarm extends Service {
private final LocalBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder
{
public ServiceAlarm getService()
{
return ServiceAlarm.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i("CheckLo", "Destroyed");
//NOT WORKING !!! It doesn't restart the service
Intent intent = new Intent(this, ServiceAlarm.class);
startService(intent);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
StartESP();
}
});
return android.app.Service.START_STICKY;
}
public void StartESP()
{
Thread welcomeThread = new Thread() {
@Override
public void run() {
try {
super.run();
sleep(5000); //Delay of 10 seconds
} catch (Exception e) {
} finally {
//Do some task
Log.i("CheckLo", "Started");
StartESP();
}
}
};
welcomeThread.start();
}
}
我这样称呼它:
Intent intent = new Intent(this, ServiceAlarm.class);
startService(intent);
和清单中:
<service
android:name=".Alarm.ServiceAlarm"
android:stopWithTask="false"
android:enabled="true">
</service>
如果有人有解决方案,请告诉我