Я пытаюсь привязать сервис, но метод привязки сервиса всегда возвращает false.Я считаю, что проблема в моей связи.Когда я импортирую местоположение класса LocalBinder (в сервисе), я не получаю никаких ошибок компиляции, но вызов bindService все еще ложен.
Сервисная информация:
//binder for client
private final IBinder mBinder = new LocalBinder();
//client class binder
public class LocalBinder extends Binder {
ServiceA getService() {
// Return this instance of LocalService so clients can call public methods
return ServiceA.this;
}
}
@Override
public IBinder onBind(Intent arg0) {
return mBinder;
}
//called when service is created
public void onCreate(){
super.onCreate();
Toast.makeText(this,"ServiceA is started",Toast.LENGTH_SHORT).show();
}
Соединение:
private ServiceConnection connect2A = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className,
IBinder service) {
// We've bound to LocalService, cast the IBinder and get LocalService instance
LocalBinder newBinder = (LocalBinder) service;
mainService = newBinder.getService();
bound = true;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
bound = false;
}
};
Исходные вызовы:
@Override
protected void onStart(){
super.onStart();
Intent intent = new Intent(this, ServiceA.class);
startService(intent);
boolean check = bindService(intent,connect2A,0);
Toast.makeText(this, "Return from check is: " + check, Toast.LENGTH_LONG).show();
//program does get to this point, but binding fails
}
файл AndroidManifest.XML:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ServiceTest2Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:enabled="true" android:name=".serviceA" />
</application>