我如何一直运行服务?

时间:2010-04-21 09:26:23

标签: android android-service

我有一些我希望在后台运行的过程。

所以我把它变成了Service

我的问题是:无论如何都要阻止用户杀死此服务? (即使他使用第三方应用程序)

5 个答案:

答案 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)