@@ -62,10 +62,15 @@ public void onCreate() {
62
62
public int onStartCommand (Intent intent , int flags , int startId ) {
63
63
if (pythonThread != null ) {
64
64
Log .v ("python service" , "service exists, do not start again" );
65
- return START_NOT_STICKY ;
65
+ return startType ();
66
+ }
67
+ //intent is null if OS restarts a STICKY service
68
+ if (intent == null ) {
69
+ Context context = getApplicationContext ();
70
+ intent = getThisDefaultIntent (context , "" );
66
71
}
67
72
68
- startIntent = intent ;
73
+ startIntent = intent ;
69
74
Bundle extras = intent .getExtras ();
70
75
androidPrivate = extras .getString ("androidPrivate" );
71
76
androidArgument = extras .getString ("androidArgument" );
@@ -91,6 +96,10 @@ protected int getServiceId() {
91
96
return 1 ;
92
97
}
93
98
99
+ protected Intent getThisDefaultIntent (Context ctx , String pythonServiceArgument ) {
100
+ return null ;
101
+ }
102
+
94
103
protected void doStartForeground (Bundle extras ) {
95
104
String serviceTitle = extras .getString ("serviceTitle" );
96
105
String serviceDescription = extras .getString ("serviceDescription" );
@@ -153,7 +162,10 @@ public void onDestroy() {
153
162
@ Override
154
163
public void onTaskRemoved (Intent rootIntent ) {
155
164
super .onTaskRemoved (rootIntent );
156
- stopSelf ();
165
+ //sticky servcie runtime/restart is managed by the OS. leave it running when app is closed
166
+ if (startType () != START_STICKY ) {
167
+ stopSelf ();
168
+ }
157
169
}
158
170
159
171
@ Override
0 commit comments