向通知添加操作以再次显示通知但稍后显示通知的暂停计时器?

时间:2013-02-18 13:14:25

标签: android notifications action delay

我的应用程序显示通知。我想通过addAction向通知添加一个Action,导致通知消失并在一小时后重新出现,但是我不想为此打开一个Activity,最好的情况:用户单击操作,通知消失,然后在一小时后重新出现,就像通知的贪睡计时器一样。

有没有办法在不打开活动的情况下执行此操作?

感谢您的帮助

1 个答案:

答案 0 :(得分:5)

每个通知操作都来自PendingIntent。当然,您不希望发起活动而您不需要。

您的案例的最佳选择是创建PendingIntent:

public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)
这样,每当用户点击通知时,它将在系统上生成广播。然后,您必须创建BroadcastReceiver,以接收此广播并使用AlarmManager安排另一个PendingIntent。这个第二个待处理的意图将是一个不同的广播,只要它被解雇,你的BroadcastReceiver就可以接收并显示新的通知。

有意义吗?

** 编辑:

只是为了澄清一个伪示例:

  
      
  • 您的应用在Manifest中注册了BroadcastReceiver以接收'com.yourapp.mybroadcast'的广播
  •   
  • 通知有一个com.yourapp.mybroadcast PendingIntent with extras boolean isSchedule = true和int time = 60(60分钟)
  •   
  • 用户点按通知,此广播被触发,您的BroadcastReceiver收到onReceive(Context context, Intent intent)
  •   
  • 在你的onReceive中你读到isSchedule = true(意思是它必须创建一个新的时间表,时间= 60分钟。所以它使用了   AlarmManager用isSchedule =创建一个新的Broadcast PendingIntent   假;将在60分钟内解雇
  •   
  • AlarmManager将在60分钟后再次调用您的BroadcastReceiver,但这次使用isSchedule = false,因此您的BroadcastReceiver知道它的   是时候再次显示通知了。
  •