Android убивает службу из службы и предотвращает ее повторное открытие

Я разрабатываю приложение, и мне нужно заблокировать некоторые приложения из одной службы.

¿Как я могу убить эти службы приложений и предотвратить их перезапуск, когда моя служба работает?

Большое спасибо :)


person Rodrigo Cifuentes Gómez    schedule 14.09.2013    source источник
comment
Эта ссылка поможет вам задать лучший вопрос. stackoverflow.com/about Вы должны начать с документации Google или Android.   -  person nexus_2006    schedule 15.09.2013


Ответы (1)


Вы можете остановить службу, позвонив

context.stopService (намерение);

Это намерение должно быть тем, которое вы используете для запуска самой службы, например:

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

Теперь вам нужно запускать этот код через равные промежутки времени, чтобы вы могли быть уверены, что убиваете службу, не используя слишком много ресурсов ЦП. Этого можно добиться с помощью AlarmManager, документацию можно найти здесь: http://developer.android.com/reference/android/app/AlarmManager.html

Вам нужно будет получить экземпляр AlarmManager, настроить его на повторение каждые N миллисекунд и запустить Receiver:

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
 }
person LuigiPower    schedule 15.09.2013