Я разрабатываю приложение, и мне нужно заблокировать некоторые приложения из одной службы.
¿Как я могу убить эти службы приложений и предотвратить их перезапуск, когда моя служба работает?
Большое спасибо :)
Я разрабатываю приложение, и мне нужно заблокировать некоторые приложения из одной службы.
¿Как я могу убить эти службы приложений и предотвратить их перезапуск, когда моя служба работает?
Большое спасибо :)
Вы можете остановить службу, позвонив
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
}