【问题标题】:repeating local Notifications automatically?自动重复本地通知?
【发布时间】:2018-01-14 16:35:41
【问题描述】:

所以我设法在 android 中创建了一个本地通知。下面给出部分代码。

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),alarmManager.INTERVAL_DAY,pendingIntent);

现在创建通知没有问题。问题是我目前正在通过按下按钮来测试它,该按钮开始整个通知的事情,通知每天同时出现。但是,我仍然不想添加一个按钮供用户按下,所以我必须删除该按钮,并在每次用户启动应用程序时(在 Main 类的 onCreate 上)运行这个警报启动代码,以确保通知已激活。然而,对我来说,一遍又一遍地设置相同的警报似乎是不合适的,因为一次就足够了。连续这样做是否真的会导致任何问题?或者有什么方法可以获得当前激活的 ALARM SERVICE ? (如何?)。我正在考虑使用共享首选项进行一次激活,但服务可能会在此期间停止并且不再有通知。在这种情况下你有什么建议?我看过其他一些几乎相同问题的帖子,但与我的问题无关。

【问题讨论】:

    标签: java android notifications alarm automatic-updates


    【解决方案1】:

    “有什么方法可以获取当前激活的 ALARM SERVICE 吗?(如何?)” 长话短说,不,您不能直接从 Android 中进行(您可以在调试时使用 shell 进行操作,或者如果您已将设备植根,在这种情况下,是的)。

    但是,好消息:警报完全由其未决意图定义,因此,相同的未决意图,相同的警报。 您可以做的是在每次使用相同的 EXACT 待处理意图打开主要活动时调用您的警报。此时,您有 2 种选择 Pendin Intent 的标志:您可以使用 PendingIntent.FLAG_CANCEL_CURRENT 或 PendingIntent.FLAG_UPDATE_CURRENT。

    第一个将与警报一起吃午饭,如果有一个相应的挂起的 intet 已经注册,则将什么也不做(取消请求而留下当前的)

    第二个将与警报一起吃午饭,如果已经注册了一个相应的待处理意图,则将更新当前警报,并且不会在您每次打开应用时添加大量警报。

    就个人而言,第二个一直为我完成他的工作

    (见https://developer.android.com/reference/android/app/PendingIntent.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多