Android(Pie)|应用关闭后使用服务

时间:2019-01-07 14:45:59

标签: android intentservice

在我的Android应用中,我有一项服务,每隔 n 分钟在后台运行。 我从以下代码(简化)开始:

Intent intent = new Intent(context, MyBroadcast.class);
PendingIntent sender = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
long l = //timestamp - when execute the service
if(am!=null) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, l, sender);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        am.setExact(AlarmManager.RTC_WAKEUP, l, sender);
    } else {
        am.set(AlarmManager.RTC_WAKEUP, l, sender);
    }
}

然后在MyBroadcast.class中,我这样做:

Intent service = new Intent(context, MyService.class);
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O) {
    context.startForegroundService(service);
} else {
    context.startService(service);
}

然后,在MyService.class中,经过一些操作,我重用了第一个代码以重新启动该过程。

问题:在装有Android 9 Pie的设备上,从最近的应用程序中删除我的应用程序后,该服务已关闭/停止。我已经尝试在onTaskRemoved中使用onDestroyMyService.class,但是它们不起作用。

有什么想法吗?我该怎么办?

0 个答案:

没有答案