我有一些我想一直在后台运行的进程。
所以我把它做成了一个Service
.
我的问题是:有没有办法阻止用户杀死这个服务?(即使他使用第三方应用程序)
我有一些我想一直在后台运行的进程。
所以我把它做成了一个Service
.
我的问题是:有没有办法阻止用户杀死这个服务?(即使他使用第三方应用程序)
也许这可以帮助你:
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/中找到。
• 已启动的服务可以使用startForeground(int, Notification) API 将服务置于前台状态,系统认为它是用户主动意识到的,因此在内存不足时不适合杀死。(理论上,在当前前台应用程序的极端内存压力下,服务仍然可能被杀死,但实际上这不应该是一个问题。)
在服务的 onDestory 方法中发送广播,在广播接收者的 onReceive 方法中重启服务。但请确保您的服务的资源在控制之下