Android 从服务类取消AlarmReceiver
我和alaram经理一起学习呼叫我的服务。这是我在mainActivity中设置报警管理器的代码Android 从服务类取消AlarmReceiver,android,service,alarmmanager,Android,Service,Alarmmanager,我和alaram经理一起学习呼叫我的服务。这是我在mainActivity中设置报警管理器的代码 Intent downloader = new Intent(context, AlarmReceiver.class); downloader.putExtra("limit", limit.getSelectedItem().toString()); downloader.putExtra("delay",perMin.getSel
Intent downloader = new Intent(context, AlarmReceiver.class);
downloader.putExtra("limit", limit.getSelectedItem().toString());
downloader.putExtra("delay",perMin.getSelectedItem().toString());
downloader.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); `pendingIntent = PendingIntent.getBroadcast(context, 0, downloader,PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int delay = Integer.parseInt(perMin.getSelectedItem().toString());
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,10 * 1000, delay * 1000, pendingIntent);
这是我的警报接收器课程
公共类AlarmReceiver扩展了BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent update = new Intent(context, IntervalService.class);
Log.i(tag, "Call service from Alaram Receiver");
context.startService(update);
}}
我知道当我想从主活动中取消alarm manager时,可以轻松地呼叫alarmManager。取消(PendingEvent),但我想取消alarm manager以完成我的服务任务,然后像上面一样重新设置。刚刚修改了您的代码
public void setAlarmManager(boolean cancel){
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,downloader,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int delay = Integer.parseInt(perMin.getSelectedItem().toString());
if(!cancel)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,10 * 1000, delay * 1000, pendingIntent);
else
alarmManager.cancel(pendingIntent);
}
需要时调用此函数
要启动:setAlarmManager(false)
要取消:setAlarmManager(true);//在服务中调用此函数
试试看,这可能有用。谢谢。刚刚修改了您的代码
public void setAlarmManager(boolean cancel){
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,downloader,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int delay = Integer.parseInt(perMin.getSelectedItem().toString());
if(!cancel)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,10 * 1000, delay * 1000, pendingIntent);
else
alarmManager.cancel(pendingIntent);
}
需要时调用此函数
要启动:setAlarmManager(false)
要取消:setAlarmManager(true);//在服务中调用此函数
试试看,这可能有用。谢谢。刚刚修改了您的代码
public void setAlarmManager(boolean cancel){
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,downloader,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int delay = Integer.parseInt(perMin.getSelectedItem().toString());
if(!cancel)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,10 * 1000, delay * 1000, pendingIntent);
else
alarmManager.cancel(pendingIntent);
}
需要时调用此函数
要启动:setAlarmManager(false)
要取消:setAlarmManager(true);//在服务中调用此函数
试试看,这可能有用。谢谢。刚刚修改了您的代码
public void setAlarmManager(boolean cancel){
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,downloader,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int delay = Integer.parseInt(perMin.getSelectedItem().toString());
if(!cancel)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,10 * 1000, delay * 1000, pendingIntent);
else
alarmManager.cancel(pendingIntent);
}
需要时调用此函数
要启动:setAlarmManager(false)
要取消:setAlarmManager(true);//在服务中调用此函数
试试看,这可能行得通。谢谢。只需使用另一个广播,但带有
意图
额外指示应取消警报。只需使用另一个广播,但带有意图
额外指示应取消警报。只需使用另一个广播,但带有意图
额外指示应取消警报ed.只需使用另一个广播,但带有意图
额外指示,指示应取消警报。