これを使用して、カスタム アクションに一致する IntentFilter を持つすべての Service を読み取るアプリを作成しています。
Intent intent = new Intent(ACTION);
List<ResolveInfo> infos = getActivity().getPackageManager()
.queryIntentServices(intent, 0);
サービスの取得に問題はありませんが、サービスを現在のアクティビティにバインドしようとすると、IBinder の実装が に渡されませんonServiceConnected(ComponentName, IBinder)
。代わりに、aBinderProxy
が渡されます。
どうすればそこLocalBinder
から取得できBinderProxy
ますか?
編集:
これが私の実装です:
public abstract class LocalService extends Service {
private LocalBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder {
public LocalService getServiceInstance() {
return LocalService.this;
}
}
@Override
public final IBinder onBind(Intent intent) {
return mBinder;
}
public abstract List<Category> getInitialCategories();
public abstract void onObjectSelected(Item object,
LocalCallback callback);
}
私がやりたいことは、他の人の LocalService の実装から最後の 2 つのメソッドを呼び出せるようにすることです。