2013-09-14 1 views
0

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

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

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

+0

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

ответ

0

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

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); 

Interval находится в миллисекундах и устанавливает, как часто будет срабатывать ваш «onReceive()». Чем дольше интервал, тем меньше батареи вы используете.

И MyBroadcastReceiver будет класс, который расширяет BroadcastReceiver и переопределяет метод OnReceive()

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    //STOP THE SERVICE HERE 
} 
Смежные вопросы