2011-11-30 58 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用于停止服务的活动。