首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android 服務綁定流程解析:onServiceConnected 回調獲取代理對象

     編輯:程式設計疑難解答

綁定服務標準流程

  1. Activity 實現 ServiceConnection 接口,重寫 onServiceConnected、onServiceDisconnected。
  2. 調用 bindService(intent, conn, BIND_AUTO_CREATE)。
  3. 系統啟動 Service,回調 onServiceConnected,參數 IBinder binder 為服務端返回的通信接口。
  4. 將 binder 轉換為自定義接口:MyService.LocalBinder binder = (MyService.LocalBinder) binder;,獲取 Service 實例:myService = binder.getService();。
  5. 後續直接調用 myService.getRandomNumber() 等公共方法。
  6. 解綁:unbindService(conn)。

問題代碼分析

書中示例在 Activity 中直接 new MyService() 並調用方法,這不是綁定服務,而是普通對象調用,Service 生命周期方法(onCreate、onBind)均不會執行,無法實現跨進程、後台長期運行等服務特性。

正確姿勢

必須走 bindService → onServiceConnected 獲取代理對象,才能真正使用 Service 能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved