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--在应用未运行时发送通知的主要内容,如果未能解决你的问题,请参考以下文章

无法在应用商店上传应用

在应用扩展和容器应用之间共享数据

在亚马逊应用商店发布安卓应用

无法在应用商店中隐藏应用 [关闭]

堆栈在括号匹配和递归中的应用;队列的应用

应用没有出现在应用商店搜索中