【问题标题】:Android kill service from a service and prevent it to reopenAndroid从服务中杀死服务并阻止它重新打开
【发布时间】:2013-09-14 23:05:47
【问题描述】:

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

¿如何在我的服务运行时终止这些应用程序服务并防止它们重新启动?

非常感谢:)

【问题讨论】:

标签: android android-service kill-process


【解决方案1】:

你可以通过调用来停止服务

context.stopService(Intent 意图);

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

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
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多