我试图用后台服务编写一个应用程序,我正在用buildozer编译它,它可以工作,有点像。问题是,在清除android上最近的应用程序之后,该服务不会自动重新启动!可能会有什么问题?我给你写了一个我想做的例子:
main.py
class ServiceApp(App):
def startservice(self, *args):
if platform == "android":
from jnius import autoclass
service = autoclass('org.codeclickers.testservice.ServiceMyservice')
mActivity = autoclass('org.kivy.android.PythonActivity').mActivity
argument = ''
service.start(mActivity, argument)
print("service Started!")
def build(self):
return Button(text="start service", on_press=self.startservice())service.py
from jnius import autoclass
import time
from plyer import notification
if __name__ == "__main__":
PythonService = autoclass('org.kivy.android.PythonService')
PythonService.mService.setAutoRestartService(True)
print("service Started")
while True:
notification.notify(title='service', message=str("Testing"))
time.sleep(3)谢谢!
发布于 2021-08-16 06:49:24
我认为您的服务不会因为service.py上的if __name__ == "__main__"条件而重新启动。毕竟,当您正在运行的脚本是主要的脚本时,这个条件就会得到满足。
我自己也不知道这些服务。但据我所知,主程序是main.py,被调用的程序是service.py,只有在主程序中执行,您的if __name__ == "__main__"条件和下面的代码才能工作。所以,我认为您只需要删除这个条件,然后您的服务就会重新启动。
https://stackoverflow.com/questions/66186578
复制相似问题