【问题标题】:How can I send notifications if my app is closed?如果我的应用程序已关闭,我如何发送通知?
【发布时间】:2016-11-06 22:57:31
【问题描述】:

如果我的应用关闭,我如何在白天发送用户通知?如果他在重新启动手机后没有打开应用程序,它也应该可以工作。我怎样才能在我的应用程序中实现类似的东西,我应该为此学习什么? 谢谢!

【问题讨论】:

  • 请详细解释“发送我的用户通知”是什么意思。这些通知的触发因素是什么?
  • 用户在应用程序中收到提醒的通知。比如闹钟之类的。就像在 Tinder 中,当他们根据通知告诉您您可以再次向右滑动时一样。

标签: android android-studio notifications android-alarms


【解决方案1】:

推送通知来自 Android 上的 GCM(谷歌云消息)。要查看这方面的教程,您可以转到https://www.simplifiedcoding.net/android-push-notification-using-gcm-tutorial/

根据“如果他在重新启动手机后没有打开应用程序,它也应该工作”部分,一旦您向客户端注册您的应用程序,您就可以使用发生(或不发生)的逻辑当您注销应用程序时。例如,您可以取消注册服务,这样您就不会收到任何通知。

在您的情况下,如果您想继续接收通知,那么您可以通过确保您的令牌处于活动状态(最好在系统偏好设置中)来做到这一点,并处理令牌需要更新时发生的情况。 (见 onTokenRefresh() 回调)

首先执行愉快的路径,看看您可以注册和接收,然后为您的通知执行任何其他逻辑。

【讨论】:

  • 但是有没有办法离线执行此操作,因为使用 Google 云消息传递应用程序需要互联网访问权限?
  • 是的,但是一旦设备能够再次接收到推送,GCM 会将通知放入队列中并传递。如果您想在没有 GCM 的情况下实现推送通知,请查看此帖子 stackoverflow.com/questions/20329403/…
  • 好的,但是有没有不需要任何互联网访问的离线解决方案?
【解决方案2】:

您可以为此使用AlarmManager。它将使用预定的 Intent 唤醒您的应用程序,您可以在其中执行您的代码,例如显示通知。

似乎与How to schedule a task using Alarm Manager重复

【讨论】:

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