2011-11-30 2 views
0

В моем приложении я хочу остановить службу в определенное время с помощью диспетчера аварийных сигналов. Но метод Alarm Manager cancel() не занимает времени. Так как я могу остановить его?Как остановить службу с помощью диспетчера аварийных сигналов в определенное время в Android?

Я написал код, как показано ниже:

Intent intent = new Intent(DashboardScreen.this, ServiceClass.class); 
    Log.d("Testing", "Intent created"); 
    PendingIntent pi = PendingIntent.getService(DashboardScreen.this, req, intent, 0); 
    AlarmManager alarm_manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarm_manager.setRepeating(AlarmManager.RTC_WAKEUP, cur_cal.getTimeInMillis(),30*1000, pi); 
    Log.d("Testing", "Intent created"); 
    Intent intent1 = new Intent(this, ServiceClass.class); 
    PendingIntent sender = PendingIntent.getService(this, req, intent1, 0); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.cancel(sender); 
+0

Может ли кто-нибудь знать ответ? Как остановить это ожидающее намерения? Пожалуйста, помогите .... –

+0

PLS дать мне ответ .. –

ответ

2

На мой взгляд, вы не можете остановить службу, используя alarmmanager прямым способом. Функция cancel() в alarmmanager - это просто удалить запланированный повторяющийся сигнал.

Я предлагаю вам назвать деятельность, которая останавливает вашу службу с помощью другого менеджера сигнализации при необходимости:

alarmmanager.set (AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + TIME_PERIOD, pendingIntent);

Если вы хотите прекратить свое обслуживание через 600 секунд, вы можете установить TIME_PERIOD на 600 * 1000. pendingIntent предназначен для активности, которая останавливает ваше обслуживание.

Смежные вопросы