android " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Android缁戝畾鏈嶅姟bindService鎬庝箞瀹炵幇

扬州沐宇科技
2023-10-19 12:52:36
android

瑕佸疄鐜癆ndroid缁戝畾鏈嶅姟锛坆indService锛夛紝闇€瑕佹寜鐓т互涓嬫楠よ繘琛屾搷浣滐細

  1. 鍒涘缓涓€涓猄ervice绫伙紝缁ф壙鑷猄ervice锛屽苟瀹炵幇鐩稿簲鐨勬柟娉曘€傚湪onBind()鏂规硶涓紝杩斿洖涓€涓狪Binder瀵硅薄锛屼緵瀹㈡埛绔笌鏈嶅姟绔繘琛岄€氫俊銆?/li>
public class MyService extends Service {
private final IBinder mBinder = new MyBinder();
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
private class MyBinder extends Binder {
MyService getService() {
return MyService.this;
}
}
// 鍏朵粬鏂规硶鍜岄€昏緫
}
  1. 鍦ˋctivity涓紝澹版槑涓€涓猄erviceConnection瀵硅薄锛屽苟瀹炵幇鍏剁浉搴旀柟娉曘€?/li>
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// 鑾峰彇鏈嶅姟瀵硅薄
MyService.MyBinder binder = (MyService.MyBinder) service;
MyService myService = binder.getService();
// 鍦ㄦ澶勫彲浠ヨ皟鐢ㄦ湇鍔′腑鐨勬柟娉?/span>
}
@Override
public void onServiceDisconnected(ComponentName name) {
// 鏂紑涓庢湇鍔$殑杩炴帴
}
};
  1. 鍦ˋctivity涓紝浣跨敤bindService()鏂规硶鏉ョ粦瀹氭湇鍔°€?/li>
Intent intent = new Intent(this, MyService.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
  1. 濡傛灉涓嶅啀闇€瑕佷笌鏈嶅姟杩涜閫氫俊锛屽彲浠ヤ娇鐢╱nbindService()鏂规硶鏉ヨВ闄ょ粦瀹氥€?/li>
unbindService(mConnection);

娉ㄦ剰浜嬮」锛?/p>

  • 缁戝畾鏈嶅姟鏃讹紝闇€瑕佸湪娓呭崟鏂囦欢涓0鏄嶴ervice缁勪欢銆?/p>

  • 缁戝畾鏈嶅姟鏃讹紝闇€瑕佽繘琛岀浉搴旂殑鏉冮檺鐢宠锛屽<uses-permission android:name="android.permission.BIND_SERVICE" />銆?/p>

  • 鍦╱nbindService()鏃讹紝瑕佺‘淇濅箣鍓嶅凡缁忚皟鐢ㄨ繃bindService()鏂规硶锛屽惁鍒欏彲鑳戒細寮曞彂寮傚父銆?/p>

  • 鏈嶅姟缁戝畾鐨勭敓鍛藉懆鏈熶笌Activity鐨勭敓鍛藉懆鏈熺浉浜掔嫭绔嬨€?/p>

扫码添加客服微信