如何在后台模式下在 android 上的 python kivy 中启动服务?

How to start service in python kivy on android in background mode?

我在 android 上的应用需要一个服务来接收来自服务器的消息。我的应用代码:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
import sys
import socket
import time, subprocess
from kivy.uix.label import Label
from jnius import cast
from jnius import autoclass
from kivy.context import get_current_context
class MyApp(App):
    def build(self):
        fl = FloatLayout()
        try:
            service = autoclass('org.test.myapp.ServiceMyservice')                                                                  
            mActivity = autoclass('org.kivy.android.PythonActivity').mActivity
            service.start(mActivity, "")
        except Exception as error:
            fl.add_widget(Label(text=str(error), font_size=(30)))
    def on_stop(self):
        return True
if __name__ == '__main__':
    MyApp().run()

此代码 return 没有任何错误,但服务没有启动。服务代码:

import sys, socket, os, time, pickle
from jnius import autoclass, cast
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'example-78967.portmap.host'
port = 78967
s.connect((host,port))
s.send(('hello').encode('utf-8'))

我尝试在智能手机上启动此代码并且成功了,我收到了消息。这意味着,该服务没有启动,并且 service/main.py 中没有任何 errors.My 服务。 在 buildozer.specservices 部分,我添加了:services = myservice:./service/main.py。而且我还没有尝试在后台 运行 它。我该做什么?希望大家帮帮我。

on_stop 方法使应用程序崩溃,当我删除它时,我的应用程序已开始运行。