如何在杀死后台服务的设备上运行应用程序(如Xiomi)?

时间:2017-09-12 05:36:56

标签: android service

我尝试在后台运行服务。使用过Start_Sticky。 基本上这是answer。它适用于许多设备,但在小米联想等设备中,当应用程序从“最近的应用程序”屏幕中删除时服务终止。我也尝试停用特定应用程序和完整系统的省电模式,但这也不起作用。

如何让它在这些设备中运行?我知道这是可能的,因为即使应用程序不在“最近的应用程序”屏幕中,某些应用程序(如whatsapp)和游戏也能够发送通知。

1 个答案:

答案 0 :(得分:0)

您可以在服务类的onTaskRemoved()方法中创建1分钟的警报。它将在1分钟后自动调用并重新启动服务。

在服务类

public void onTaskRemoved(Intent rootIntent) {
     Intent restartService = new Intent(getApplicationContext(), YourService.class);
     restartService.setPackage(Yourpackagename);
     PendingIntent restartServiceIntent = 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, restartServiceIntent);
}