2011-11-30 23 views
0

在我的應用程序中,我想使用Alarm Manager在特定的時間停止服務。但是Alarm Manager的cancel()方法不需要任何時間。那我該如何阻止它呢?如何在Android的特定時間使用Alarm Manager停止服務?

我寫了類似下面的代碼:

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

請給我答案.. –

回答

2

在我看來,你可以在一個直接的方式使用alarmmanager不停止服務。 alarmmanager中的cancel()函數僅用於刪除計劃的重複鬧鐘。

我建議你打電話時需要使用另一個報警管理器,它停止服務的活動:

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

如果您想在600秒後停止服務,可以將TIME_PERIOD設置爲600 * 1000。 pendingIntent用於停止服務的活動。

相關問題