2017-09-15 2 views
0

Wenn das folgende ist, wie Sie einen Android-Dienst mit Kivy starten, wie stoppen Sie einen Dienst vom Frontend? Ich weiß schon, wie der Dienst Anschlag sich in den Dienst zu machen, will ich es vom Frontend stoppen:Kivy: Stoppen Sie einen Android-Dienst von der Haupt-App

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

ich folgendes versucht, aber es funktioniert nicht:

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

Antwort

1

Wenn Sie python-for-android neue Dienste api, die ich empfehlen, können Sie den Dienst über pyjnius verwalten wie folgt:

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

Wenn die alte Art und Weise mit dem android-Modul (das jetzt nicht so gut unterstützt wird) es sieht so aus, als ob Sie service.stop() auf Ihrem AndroidService-Objekt aufrufen können.

+0

Hallo @incement was meinst du mit dieser Zeile: 'service = autoclass ('your.service.name.ClassName')' was ist der 'ClassName'. Würde es Ihnen etwas ausmachen, es als zufälliges Beispiel zu tippen? – Jeff

+0

Entschuldigung, ich habe vergessen, auf http://python-for-roid.readthedocs.io/en/latest/services/#arbitrary-service-scripts zu verlinken, was erklärt, wie der Dienstname eingestellt ist. – inclement

Verwandte Themen