我试图写一个应用程序与后台服务,我正在编译它与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)
谢谢!
我认为您的服务没有重新启动,因为service.py上的if __name__ == "__main__"
条件。毕竟,当您正在运行的脚本是主脚本时,这个条件就满足了。
我自己不知道这些服务。但据我所知,主程序是main.py,被调用的程序是service.py,并且您的if __name__ == "__main__"
条件只有在主程序中执行时才会起作用。因此,我认为您只需要删除条件,然后您的服务将重新启动。