【问题标题】:Alarm Manager not cancelling pending intent in application class警报管理器未取消应用程序类中的待处理意图
【发布时间】:2015-02-13 17:11:06
【问题描述】:

我有一个未取消的未决意图。我在登录我的应用程序时启动服务,当他们注销时我停止它。下面的代码位于我的应用程序类中。那是它去的合适地方吗?我试图将它放在我拥有的 MainActivity 中,但在应用程序中的结果相同。

private PendingIntent mJobPendingIntent;
private final int RQSNUM_SIP = 1337;

public void startJob(){
    LogText.appendLog(TAG + " startJob");
    Intent intent = new Intent(this, JobReceiver.class);
    mJobPendingIntent = PendingIntent.getBroadcast(this, RQSNUM_SIP, intent, PendingIntent.FLAG_ONE_SHOT);
    ((AlarmManager) this.getSystemService(Context.ALARM_SERVICE)).setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP
                                                                                        , SystemClock.elapsedRealtime()+7000
                                                                                        , 7000
                                                                                        , mJobPendingIntent);
}

public void stopSipJob(){
    ((AlarmManager) this.getSystemService(Context.ALARM_SERVICE)).cancel(mJobPendingIntent);
    LogText.appendLog(TAG + " stopJob");
}

我知道停止作业会被调用,但在我注销并调用停止作业后,我查看了手机上的设置,发现进程仍在运行。

我怎样才能停止这个警报?

感谢您的帮助

【问题讨论】:

    标签: android android-intent android-pendingintent android-alarms


    【解决方案1】:

    我认为你应该在 stopSipJob() 上再次创建 PendingIntent

    public void stopSipJob(){
        Intent intent = new Intent(this, JobReceiver.class);
        mJobPendingIntent = PendingIntent.getBroadcast(this, RQSNUM_SIP, intent, PendingIntent.FLAG_ONE_SHOT);
        ((AlarmManager) this.getSystemService(Context.ALARM_SERVICE)).cancel(mJobPendingIntent);
        LogText.appendLog(TAG + " stopJob");
    }
    

    【讨论】:

    • 这并没有解决问题。当我在注销后检查时它仍在运行
    • 你为什么使用 PendingIntent.FLAG_ONE_SHOT?再次查看我的代码,这是我看到的唯一区别。我有一些像PendingIntent.getBroadcast(this, RQSNUM_SIP, intent, 0)
    【解决方案2】:

    从对PendingIntent.getBroadcast() 的调用中删除PendingIntent.FLAG_ONE_SHOT。这导致了您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多