程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> service-大神:Android的Service如何實現不被手機清除緩存,而被殺掉

service-大神:Android的Service如何實現不被手機清除緩存,而被殺掉

編輯:編程綜合問答
大神:Android的Service如何實現不被手機清除緩存,而被殺掉

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);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved