为了账号安全,请及时绑定邮箱和手机立即绑定

START_STICKY无法在Android KitKat上运行

START_STICKY无法在Android KitKat上运行

海绵宝宝撒 2019-08-31 11:23:17
我的一个应用程序有一个backgrouod服务,它使用START_STICKY返回代码onStartCommand在系统杀死它时自动重启。似乎这不再适用于Android KitKat。这有什么解决方案吗?我应该在Kitkat做一些不同的事情来保持服务的运行吗?注意:在Android-Devlopers小组中有一个关于从最近的应用列表行为中滑动应用程序的类似讨论。这两个问题可以相关吗? https://groups.google.com/forum/#!topic/android-developers/H-DSQ4-tiac编辑:看到Android问题跟踪器上有开放的错误:https://code.google.com/p/android/issues/detail?id=63793 https://code.google.com/p/android/issues/detail?id=63618Edit2:即使服务正在运行startForeground,在单独的进程android:stopWithTask="false"中使用AndroidManifest.xml文件中的标志,也会发生同样的情况......Edit3:Android问题跟踪器上的更多相关错误:https://code.google.com/p/android/issues/detail?id=62091 https://code.google.com/p/android/issues/detail?id=53313 https://code.google。 COM / p /安卓/问题/细节?ID = 104308是否有某种解决方法来获得以前的行为?
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

似乎这是Android 4.4中存在的一个错误,并通过以下方式解决了这个问题:


@Override

public void onTaskRemoved(Intent rootIntent) {

    Intent restartService = new Intent(getApplicationContext(),

            this.getClass());

    restartService.setPackage(getPackageName());

    PendingIntent restartServicePI = PendingIntent.getService(

            getApplicationContext(), 1, restartService,

            PendingIntent.FLAG_ONE_SHOT);

    AlarmManager alarmService = (AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE);

    alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() +1000, restartServicePI);


}


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 691 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信