0

我正在开发一个应用程序,我需要从一项服务中阻止一些应用程序。

¿ 我怎样才能杀死这些应用程序服务并防止它们在我的服务运行时重新启动?

非常感谢 :)

4

1 回答 1

0

您可以通过调用停止服务

context.stopService(意图意图);

该意图必须是您用来启动服务本身的意图,例如:

Intent i = new Intent(context, MyService.class);
context.stopService(i);

现在您必须定期运行此代码,这样您才能确保在不使用过多 CPU 的情况下终止服务。这可以通过 AlarmManager 来实现,您可以在此处找到文档:http: //developer.android.com/reference/android/app/AlarmManager.html

您必须获取一个 AlarmManager 实例,将其设置为每 N 毫秒重复一次并运行一个接收器:

int interval = 120000;

Intent i = new Intent(context, MyBroadcastReceiver.class);
PendingIntent action = PendingIntent.getBroadcast(context, 0, i, 0);

AlarmManager am = Context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, action);

间隔以毫秒为单位,设置“onReceive()”触发的频率。间隔时间越长,您使用的电池就越少。

MyBroadcastReceiver 将是一个扩展 BroadcastReceiver 并覆盖 onReceive() 方法的类

 @Override
 public void onReceive(Context context, Intent intent) 
 {   
     //STOP THE SERVICE HERE
 }
于 2013-09-15T01:01:18.030 回答