【问题标题】:Cancel on Activity B an Alarm of AlarmManager created on Activity A在Activity B上取消在Activity A上创建的AlarmManager的Alarm
【发布时间】:2014-06-02 12:13:01
【问题描述】:

我试图在 ActivityB 上取消我在 ActivityA 上创建的警报。

我认为问题在于,要取消警报,PendingIntent 必须与创建的相同,在这种情况下,PendingIntent 的上下文是 ActivityA,由于我试图取消此警报和 ActivityB 上的 PendingIntent,当我在 ActivityB 上创建了 PendingIntent 我不知道如何使用 ActivityA.this 的上下文来取消它。

【问题讨论】:

  • 请贴出您用来设置闹钟的代码以及您用来取消闹钟的代码。

标签: android alarmmanager android-pendingintent


【解决方案1】:

请点击此链接和教程,它将让您更好地了解 Pending Intetns 的使用和实现。

http://www.sanfoundry.com/java-android-program-pending-intent/

【讨论】:

    【解决方案2】:

    在您创建警报的类中添加以下方法

    private static Context mContext;
    public static Context getActivityAContext() {
         return Reminder.mContext;
     }
    

    在另一个活动中使用

       PendingIntent pIntent = PendingIntent.getBroadcast(
        ActivityA.getActivityAContext(),
        receiverId,alarmintent,PendingIntent.FLAG_UPDATE_CURRENT);
    

    【讨论】:

    • 当我创建用作上下文的警报时:ActivityA.this。所以在你建议我应该使用的 mContext 上: mContext = ActivityA.this; ?到家后我会试试看,似乎是一个很好的解决方案。我曾尝试在 ActivityA 上创建一个静态方法来取消警报,但无法在静态方法中作为上下文 ActivityA.this 传递。
    • :(取消闹钟没有用...我尝试了很多东西但没有任何效果:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2011-01-11
    相关资源
    最近更新 更多