BootReceiverクラスでブート完了インテントを受け取り、そのインテントを受け取ったときにサービスを開始します。
@Override
public void onReceive(Context arg0, Intent arg1) {
Intent myIntent = new Intent(arg0, BootService.class);
arg0.startService(myIntent);
}
サービスは正常に開始されましたが、サービス内でバインダーオブジェクトを使用したいと思います。これがサービスコードです。
public class BootService extends Service implements IBinder{
private IBinder binder;
public class LocalBinder extends Binder {
IBinder getService() {
return BootService.this;
}
}
@Override
public void onCreate() {
super.onCreate();
Log.d("BootService", "onCreate()");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("BootService", "onStartCommand()");
binder = new LocalBinder().getService();
//This doesn't seem to work
//I wana use this binder object here
return START_STICKY;
}
.....
}
これがバインダーを入手する正しい方法かどうかはわかりません。どんな助けでも大歓迎です!!