0

在警报管理器中指定的时间到期后,我需要帮助来自动停止服务。下面是代码:

Intent c = new Intent(getApplicationContext(), CallService.class);                        
PendingIntent pintent = PendingIntent.getService(getApplicationContext(), 0, c, 0);        
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, 9*10000, pintent);

即使在指定的时间到期后,服务仍然在后台运行,如何在时间到期后立即停止服务?

4

2 回答 2

0

我使用 Timertask 在指定时间后取消意图:

Timer t = new Timer();
    TimerTask welcome = new TimerTask(){

        @Override
        public void run() {
         //Stopped the service
        }
    };
    t.schedule(welcome, 300, 30000);

以下网页详细介绍了如何使用 timertask http://www.codeproject.com/Questions/413950/TimerTask-in-Android

于 2014-08-10T19:55:48.363 回答
0

调用alarm.cancel(pintent); 在指定时间睡眠后尝试此操作,或者将其写在 alarm.set() 下方;很可能只有在时间到期后才会调用它。如果这不能达到目的,请在指定时间使用 thread.sleep 然后调用 alarm.cancel(pintent);

于 2017-09-23T07:02:57.533 回答