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

A. *_*gen 1 notifications android action delay

我的应用程序显示通知.我想补充的行动通过的addAction通知导致通知消失,重新出现后一个小时,但我不想打开活动对于这一点,最好的情况下,用户点击的动作,通知消失,然后在一小时后重新出现,就像通知的贪睡计时器一样.

有没有办法在没有开展活动的情况下做到这一点?

谢谢你的帮助

Bud*_*ius 5

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

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

public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)
Run Code Online (Sandbox Code Playgroud)

这样,每当用户点击通知时,它将在系统上生成广播.然后,您必须创建一个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创建一个新的Broadcast PendingIntent,isSchedule = false;在60分钟内被触发
  • AlarmManager将在60分钟内再次呼叫您的BroadcastReceiver,但这次使用isSchedule = false,因此您的BroadcastReceiver知道再次显示通知的时间.