1.就是實現一個不被干掉的Service。
2.我是實現對短信的監聽的,使用了靜態注冊後,退出Activity是可以監聽,
可是被清除緩存後(長按HOME鍵位清除),就沒有反應了。有沒有好的方法?
/**
* 每次調用startService(Intent)的時候,
* 都會調用該Service對象的onStartCommand(Intent,int,int)方法,
* 然後在onStartCommand方法中做一些處理。
* /
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.v("TrafficService", "startCommand");
/*
* START_STICKY:如果service進程被kill掉,保留service的狀態為開始狀態,但不保留遞送的intent對象。
* 隨後系統會嘗試重新創建service,由於服務狀態為開始狀態,所以創建服務後一定會調用onStartCommand(Intent,int,int)方法。如果在此期間沒有任何啟動命令被傳遞到service,那麼參數Intent將為null。
* START_NOT_STICKY:“非粘性的”。使用這個返回值時,如果在執行完onStartCommand後,服務被異常kill掉,系統不會自動重啟該服務。
* START_REDELIVER_INTENT:重傳Intent。使用這個返回值時,如果在執行完onStartCommand後,服務被異常kill掉,系統會自動重啟該服務,並將Intent的值傳入。
* START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保證服務被kill後一定能重啟。
* */
flags = START_REDELIVER_INTENT;//如果服務被異常kill掉,系統會自動重啟該服務
return super.onStartCommand(intent, flags, startId);
}