我有一个使用服务的问题。
我正在尝试使用永久运行的后台服务。 我用AlarmManager实现了。 所以当app关闭然后在服务的OnDestroy()方法中发送广播。 并且在报警接收器中,可以启动服务。
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
serviceInstance = this;
callHelper = new CallHelper(this);
callHelper.start();
return START_STICKY;
}
@Override
public void onDestroy() {
Log.d("1111111111", "stop service");
super.onDestroy();
setAlarmTimer();
}
@Override
public void onTaskRemoved(Intent rootIntent) {
Log.d("1111111111", "stop remove");
super.onTaskRemoved(rootIntent);
}
protected void setAlarmTimer() {
final Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.add(Calendar.SECOND, 1);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0,intent,0);
AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), sender);
}
但是,如果我从最近的应用程序列表中删除(滑动)应用程序,则不会调用服务的OnDestroy()或OnTaskRemoved。 所以无法调用AlarmManager。
以下是我的Manifest.xml:
android:name=".service.CallTrackService"
android:enabled="true"
android:exported="true"
android:stopWithTask="false"/>
从最近的应用程序列表中删除应用程序时如何调用服务的OnDestory()或OnTaskRemoved()方法?
知道此问题的任何人请提供解决方案。