我有一些我希望在后台运行的过程。
所以我把它变成了Service
。
我的问题是:无论如何都要阻止用户杀死此服务? (即使他使用第三方应用程序)
答案 0 :(得分:9)
答案 1 :(得分:5)
也许这可以帮到你:
final Intent intent = new Intent(context, YourService.class);
final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0);
final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pending);
long interval = 30000;//milliseconds
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending);
这样您的服务将从AlarmManager接收常规onStart事件。如果您的服务已停止,则会重新启动。所以你可能会说它将无限运行。 可以在Photostream示例应用程序http://code.google.com/p/apps-for-android/中找到更完整的示例。
答案 2 :(得分:1)
•已启动的服务可以使用 startForeground(int,Notification) API将服务置于前台状态,系统将其视为用户主动了解的内容,因此不会当记忆力低时杀人的候选人。 (从理论上讲,服务在当前前台应用程序的极端内存压力下被杀死仍然是可能的,但实际上这不应该是一个问题。)
答案 3 :(得分:1)
在服务的onDestory方法中发送广播,在onReceive方法中重新启动广播接收器的服务。 但请确保您的服务受到控制的资源
答案 4 :(得分:0)