看到很多關於這個問題,但即時無法解決這個問題。我怎麼能阻止我的RECEIVE_BOOT_COMPLETED服務
我有這樣的代碼
public class myBroadcastReceiver extends BroadcastReceiver {
private final String TAG = "myBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Consts.ANDROID_INTENT_ACTION_BOOT_COMPLEATE)){
Intent newinIntent = new Intent(context, ServiceBootCompleated.class);
context.startService(newinIntent);
}
}
}
它開始Service
,我可以用這條線
android.os.Debug.waitForDebugger();
我看到return START_NOT_STICKY;
執行調試,但仍 服務是作爲一個可見的「運行「服務 設置>程序>運行服務
onDestroy()
永遠不會被調用,除非我手動停止它。
我需要做些什麼來阻止它,
從「設置>程序>運行服務」窗口中將其刪除?
我叫stopSelf()和工作在onStartCommand運行。代碼只是檢查MySql完整性的幾行。我將把它移動到一個線程。謝謝 – Erik
我應該把stopSelf();在thread.run()之後的onStartCommand中;?或者在run()中像這樣ctx.stopSelf(); – Erik
在onStartCommand(來自主線程)中調用stopSelf可能不一致,因爲服務在onStartCommand返回之前不被視爲已啓動。我通常在完成工作時從另一個線程調用它。 – cistearns