posts - 93,  comments - 2,  trackbacks - 0
          Android開發的過程中,每次調用startService(Intent)的時候,都會調用該Service對象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些處理。然后我們注意到這個函數有一個int的返回值,這篇文章就是簡單地講講int返回值的作用。
          從Android官方文檔中,我們知道onStartCommand有4種返回值:

          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后一定能重啟。


          可能導致異常如下
          java.lang.RuntimeException: Unable to start service serviceName with null: java.lang.NullPointerException
           at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3221)
           at android.app.ActivityThread.access$2100(ActivityThread.java:156)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:157)
           at android.app.ActivityThread.main(ActivityThread.java:5872)
           at java.lang.reflect.Method.invokeNative(Native Method)
           at java.lang.reflect.Method.invoke(Method.java:515)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1069)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885)
           at dalvik.system.NativeStart.main(Native Method)
          Caused by: java.lang.NullPointerException
           at com.ag.rhg.download.DownloadPassService.onStart(Unknown Source)
           at android.app.Service.onStartCommand(Service.java:450)
           at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3187)
           ... 10 more


          解決辦法:在Service onStart方法中做判斷
          if (null != intent) {
              。。。。。。。
          }
          posted on 2014-02-26 15:50 Terry Zou 閱讀(903) 評論(0)  編輯  收藏 所屬分類: Android
          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阿图什市| 睢宁县| 西乌珠穆沁旗| 大余县| 黎川县| 林周县| 门头沟区| 中宁县| 永和县| 日喀则市| 巴彦淖尔市| 潞西市| 曲阳县| 新余市| 普安县| 陇川县| 峨边| 昔阳县| 瑞安市| 铁力市| 景宁| 肇州县| 左权县| 正宁县| 三穗县| 平果县| 磐安县| 阳原县| 蓬溪县| 辽阳市| 仲巴县| 翁牛特旗| 贵阳市| 开鲁县| 攀枝花市| 白城市| 黄山市| 章丘市| 南雄市| 仪陇县| 那坡县|