0

コード:

@Override
public void onResume() {
    super.onResume();

    Intent intent = new Intent(getActivity(), UserAPIService.class);
    getActivity().bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
    mService.fetchUserInfo();
}

private ServiceConnection mConnection = new ServiceConnection() {

    @Override
    public void onServiceConnected(ComponentName className,
                                   IBinder service) {
        UserAPIService.LocalBinder binder = (UserAPIService.LocalBinder) service;
        mService = binder.getService();
        mBound = true;
    }

    @Override
    public void onServiceDisconnected(ComponentName arg0) {
        mBound = false;
    }
};

ユーザー情報を取得しようとしましたが、まだバインドされていないため、サービスは null です。これについて最善の方法は何ですか?onServiceConnected メソッドで API 呼び出しを行うこともできましたが、もっと良い方法が必要です。

4

1 に答える 1

0

あなたは呼び出すことができます

mService.fetchUserInfo();

メソッド内

onServiceConnected(ComponentName className,IBinder service)

サービスがバインドされていないと、サービス インスタンスを取得できず、時間がかかる場合があります。onStart() は、サービスをバインドするのに適した場所です。

于 2015-01-29T18:34:07.477 に答える