レイさん
ユビラボ佐藤です
onCreate内でbindserviceを行って、どのぐらいでbindが完了すると
想定されていますか?onCreate内ですぐにメソッドを呼ぶのは無理ではないでしょうか。
基本的にserviceにbindするのはある程度遅延が発生するために、
Handler等でサービスのServiceConnectionが取得完了するまで待機する
必要があると思います。
画像の表示も、基本的にはHandler等でServiceConnectionの
インスタンスが取得できた後に呼ぶようにしたらいかがでしょうか。
private boolean mIsBound = false;
private IHogeService mService;
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName name, IBinder service) {
mService = IHogeService.Stub.asInterface(service);
}
public void onServiceDisconnected(ComponentName name) {
mService = null;
}
};
private Runnable run = new Runnable(){
public void run() {
if(mService == null){
mHandler.postDelayed(run, 100);
return;
}
// ここに、画像取得のコードを書く
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!mIsBound){
mIsBound = bindService(new Intent(this, HogeService.class),
mConnection, Context.BIND_AUTO_CREATE);
}
// ここにonCreateの処理をかく
mHandler.post(run);