ダイアログからサービスを開始できるかどうかを知りたいです。
どういうわけか、私の bindService 関数は false を返します。
ここに簡単なコードがあります。
マニフェスト ファイル:
<service android:name="MyService">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
サービスはこちら
public class MyService extends Service {
private final IBinder mBinder = new MainBinder();
public class MainBinder extends Binder {
MyService getService() {
return MyService.this;
}
}
MyService() {
mContext = this;
Log.d(LOG_TAG,"Constructor ");
}
public void onCreate() {
Log.d(LOG_TAG,"entered onCreate ");
super.onCreate();
}
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return mBinder;
}
protected int OnStartCommand (Intent intent, int flags, int startId) {
Log.d(LOG_TAG, "start service");
return START_STICKY;
}
}
そしてダイアログから呼び出します
public Dialog onCreateDialog(Bundle savedInstanceState) {
this.mContext = getActivity();
initService();
}
private void initService() {
boolean ret;
Intent i = new Intent(mContext, MyService.class);
//mContext.startService(i);
ret = mContext.bindService(i, myConnection, Context.BIND_AUTO_CREATE);
Log.d(LOG_TAG, "initService() bound " + ret);
}
private ServiceConnection myConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className,
IBinder service) {
MyService.MainBinder binder = (MyService.MainBinder) service;
mBoundService = binder.getService();
isBound = true;
Log.d(LOG_TAG,"Bound to Service");
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
isBound = false;
}
};
bindService() から常に false として返される手がかりはありますか?
ダイアログからサービスを開始しようとすると、アプリでもこのようなエラーが発生します
09-25 16:13:32.054: W/ResourceType(1220): Failure getting entry for 0x010802c9 (t=7 e=713) in package 0 (error -75)
また、サービスを起動するアクティビティ自体を試しました。それでも同じ問題が発生します。