Kivy:从主应用程序停止 android 服务

Posted

技术标签:

【中文标题】Kivy:从主应用程序停止 android 服务【英文标题】:Kivy: Stop a android service from main App 【发布时间】:2018-02-25 01:50:24 【问题描述】:

如果下面是你如何用 Kivy 启动一个 android 服务,你如何从前端停止一个服务?我已经知道如何让服务在服务中自行停止,我想从前端停止它:

from android import AndroidService
service = AndroidService('myApp', 'status: active')
service.start('service started')
self.service = service

我尝试了以下方法,但它不起作用:

from jnius import autoclass
service = autoclass('org.renpy.android.PythonService').mService
service.stopService()

【问题讨论】:

【参考方案1】:

如果你使用我推荐的python-for-android较新的服务api,你可以通过pyjnius来管理服务,如下所示:

        from jnius import autoclass
        service = autoclass('your.service.name.ClassName')
        mActivity = autoclass('org.kivy.android.PythonActivity').mActivity
        service.stop(mActivity)

如果在 android 模块中使用旧方法(目前还没有得到很好的支持),看起来您应该可以在 AndroidService 对象上调用 service.stop()

【讨论】:

嗨@incement,这行是什么意思:service = autoclass('your.service.name.ClassName') 是什么ClassName。你介意把它打出来作为任何随机的例子吗? 对不起,我忘记链接到python-for-android.readthedocs.io/en/latest/services/…,它解释了如何设置服务名称。

以上是关于Kivy:从主应用程序停止 android 服务的主要内容,如果未能解决你的问题,请参考以下文章

如何停止通过 buildozer 制作的 android 上的 kivy 应用程序崩溃。这些在计算机上运行良好

kivy在Android上运行,有人弄过吗

Kivy--Plyer--Android--在应用未运行时发送通知

如何将 kivy 应用程序连接到 Android 已安装的应用程序

Python/Kivy/Buildozer - 应用程序在 Android 中崩溃,但在 PC 上运行良好

在启动时启动 Kivy 服务 (Android)