Kivy--Plyer--Android--在应用未运行时发送通知
Posted
技术标签:
【中文标题】Kivy--Plyer--Android--在应用未运行时发送通知【英文标题】:Kivy--Plyer--Android--sending notification while app is not running 【发布时间】:2016-12-27 09:11:23 【问题描述】:我正在用 kivy 编写一个 python 应用程序。
这个想法是允许用户记录特定日期的预订,然后程序应在当天向他们发送有关预订的通知。
可能有一个简单的方法可以做到这一点,我正在使用 plyer。
from plyer import notification
notification.notify(title="Kivy Notification",message="Plyer Up and Running!",app_name="Waentjies",app_icon="icon.png",timeout=10)
这可行,每当我调用该函数时都会收到通知,但是,当应用程序未运行时,我找不到任何发送此通知的方法,我知道还有一些其他问题似乎可以回答这个问题问题,但他们没有,他们只是在后台运行应用程序,我不想这样做,我想要的只是当你的部队准备好战斗时通知《部落冲突》,或者当有人喜欢时 Facebook 的通知你的帖子。
【问题讨论】:
【参考方案1】:我认为你应该看看android AlarmManager。如果这是您需要的,here 就是 Kivy 的示例。
报警管理器
此类提供对系统警报服务的访问。这些允许您安排您的应用程序在将来的某个时间点运行。当警报响起时,系统会广播已为其注册的 Intent,如果目标应用程序尚未运行,则会自动启动它。
【讨论】:
感谢您回答Willem,但是当我打包程序崩溃的代码时,我浏览了一些,在某个地方我发现了另一个完全类似的问题,答案是这是不可能的,我是对此非常抱歉,但我已经和我的客户谈过了,我们为应用程序解决了这个问题,所以对我自己来说,这不再需要,虽然它会很好,但它让我花更多时间在上面现在,也许以后。感谢您分享您的知识! 我知道这已经很晚了,但是是否有另一个 Kivy 示例链接的工作版本?【参考方案2】:在 Android 上,如果没有 background service,我不确定如何实现它。
后台服务的问题是,当启动进程的应用程序被终止时,它们也会被终止。 我知道在 Android 上防止这种情况的 2-3 种方法,我认为它是 hack,但也许它是一个功能。
一种是使用START_STICKY flag。它是在 python-for-android 中实现的,但是 it seems broken to me.
另一个是使用recent 功能setAutoRestartService()。它将使服务在终止时优雅/以编程方式重新启动。
奖励方式使用BroadcastReceiver,但这在p4a中没有实现。
【讨论】:
以上是关于Kivy--Plyer--Android--在应用未运行时发送通知的主要内容,如果未能解决你的问题,请参考以下文章