Android缁戝畾鏈嶅姟bindService鎬庝箞瀹炵幇
瑕佸疄鐜癆ndroid缁戝畾鏈嶅姟锛坆indService锛夛紝闇€瑕佹寜鐓т互涓嬫楠よ繘琛屾搷浣滐細
- 鍒涘缓涓€涓猄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;
}
}
// 鍏朵粬鏂规硶鍜岄€昏緫
}
- 鍦ˋ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) {
// 鏂紑涓庢湇鍔$殑杩炴帴
}
};
- 鍦ˋctivity涓紝浣跨敤bindService()鏂规硶鏉ョ粦瀹氭湇鍔°€?/li>
Intent intent = new Intent(this, MyService.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
- 濡傛灉涓嶅啀闇€瑕佷笌鏈嶅姟杩涜閫氫俊锛屽彲浠ヤ娇鐢╱nbindService()鏂规硶鏉ヨВ闄ょ粦瀹氥€?/li>
unbindService(mConnection);
娉ㄦ剰浜嬮」锛?/p>
-
缁戝畾鏈嶅姟鏃讹紝闇€瑕佸湪娓呭崟鏂囦欢涓0鏄嶴ervice缁勪欢銆?/p>
-
缁戝畾鏈嶅姟鏃讹紝闇€瑕佽繘琛岀浉搴旂殑鏉冮檺鐢宠锛屽
<uses-permission android:name="android.permission.BIND_SERVICE" />
銆?/p> -
鍦╱nbindService()鏃讹紝瑕佺‘淇濅箣鍓嶅凡缁忚皟鐢ㄨ繃bindService()鏂规硶锛屽惁鍒欏彲鑳戒細寮曞彂寮傚父銆?/p>
-
鏈嶅姟缁戝畾鐨勭敓鍛藉懆鏈熶笌Activity鐨勭敓鍛藉懆鏈熺浉浜掔嫭绔嬨€?/p>
相关问答