如果关闭/杀死应用程序后如何保持服务在后台运行?

时间:2017-07-21 13:46:51

标签: android service

有很多关于我指定的主题的文章。但是,所有似乎都没有用。至少在我的情况下。我只想在应用程序由用户手动关闭后始终运行我的服务。我不想要前台服务,因为它在状态栏中显示一些通知图标。我希望定期服务来完成我的要求。或者请建议是否有其他替代方案可以实现此目的。我尝试使用return START_STICKY作为onStartCommand回调的返回值。我也试过广播接收器,无论如何都没有帮助我。请帮帮我。

2 个答案:

答案 0 :(得分:1)

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

在服务类

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);
}

答案 1 :(得分:0)

您可以通过在Android中实施 AlarmManger 概念来实现此功能。一旦您想要实现此后台服务,请查看以下URL。

提示:在实施之前,您应该确保这一点。因为它会消耗很多电池。

祝你好运

http://stacktips.com/tutorials/android/repeat-alarm-example-in-android

https://developer.android.com/reference/android/app/AlarmManager.html