如何使用 AlarmManager 停止服务

侯赛因·雷扎伊安

我有一个警报管理器,每分钟重复运行一个服务。我想使用按钮停止警报管理器。

当我进入应用程序时,警报管理器会停止,但是当它从应用程序中出来并且我想再次停止时钟时,它不会停止,因为内存中没有挂起的意图。使用新的待处理意图,即使我使用相同的 id,先前的待处理意图也不会停止。

btnStart.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {

    Intent intent = new Intent(G.context, MyService.class);
    intent.setAction("1020");
     pendingIntent = PendingIntent.getService(G.context, 1020, intent, 0);
    G.alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2000, pendingIntent);

  }
});//for start button  alarm manager

btnStop.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    Intent intent = new Intent(G.context, MyService.class);
    intent.setAction("1020");
    PendingIntent alarmIntent = PendingIntent.getBroadcast(G.context,  1020, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmIntent.cancel();
    G.alarmManager.cancel(alarmIntent);

  }
});//for stop button alarm manager
拉詹卡利

您可以使pendingIntent全局并使用与中相同set/stop

Intent intent = new Intent(G.context, MyService.class);
intent.setAction("1020");
pendingIntent = PendingIntent.getService(G.context, 1020, intent, 0);

btnStart.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    G.alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2000, pendingIntent);

  }
});

btnStop.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    pendingIntent.cancel();
    G.alarmManager.cancel(pendingIntent);

  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从AlarmManager启动服务

来自分类Dev

活动开始时如何停止AlarmManager

来自分类Dev

AlarmManager或服务

来自分类Dev

从服务停止AlarmManager,但在Activity中创建

来自分类Dev

使用AlarmManager与服务器同步数据

来自分类Dev

在Android中使用AlarmManager安排服务

来自分类Dev

Android如何在其他活动中停止AlarmManager

来自分类Dev

AlarmManager在Android 4.4.2中停止工作(使用SetExact())

来自分类Dev

AlarmManager无法启动服务

来自分类Dev

AlarmManager未运行服务

来自分类Dev

在App未运行时使用AlarmManager运行服务

来自分类Dev

在App未运行时使用AlarmManager运行服务

来自分类Dev

每天使用AlarmManager和服务显示通知

来自分类Dev

AlarmManager没有停止或崩溃

来自分类Dev

AlarmManager没有停止或崩溃

来自分类Dev

停止其他活动的alarmManager

来自分类Dev

AlarmManager:设置停止通知的时间

来自分类Dev

如何使用 Handler 停止服务

来自分类Dev

如何从AlarmManager取消警报

来自分类Dev

使用AlarmManager关闭活动

来自分类Dev

使用AlarmManager运行通知

来自分类Dev

Android AlarmManager警报启动服务

来自分类Dev

使用AlarmManager启动服务,该服务可能已经在运行

来自分类Dev

如何停止Strongloop服务?

来自分类Dev

如何停止系统服务?

来自分类Dev

如何停止旧服务?

来自分类Dev

如何停止我的服务?

来自分类Dev

如何停止DoSvc服务?

来自分类Dev

使用PendingIntent停止服务