Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Rodrigo Cifuentes GómezОтветов: 1

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

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

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

  • Эта ссылка поможет вам задать лучший вопрос. stackoverflow.com/about Вы должны начать с документации Google или Android. nexus_2006 15.09.2013

androidandroid-servicekill-process

Ответы

Ответ 1 · LuigiPower

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

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
 }

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы