4

LocalService というサービスを作成しました。このサービスにバインドして、何らかのアクションを実行し、呼び出し元のクライアントに結果を返すことができるようにします。Android 開発サイトの例を機能させようとしましたが、Eclipse はこのメソッドでコンパイル時エラーを出します:

void doBindService() {
    // Establish a connection with the service. We use an explicit
    // class name because we want a specific service implementation that
    // we know will be running in our own process (and thus won't be
    // supporting component replacement by other applications).
    bindService(new Intent(Binding.this, LocalService.class), mConnection, Context.BIND_AUTO_CREATE);
    mIsBound = true;
}

「Binding.this」の下に赤い線があり、Eclipse から次のように表示されます。バインディングを型に解決できません。私に何ができる?

4

2 に答える 2

5

Bindingを削除するだけで、コードは次のようになります。

bindService(new Intent(this, LocalService.class), mConnection, Context.BIND_AUTO_CREATE);

Intentコンストラクターの最初のパラメーターはContextです。上記のコードは、Activityクラスから呼び出す場合に機能します(Activityのインスタンスもコンテキストです)。そうでない場合は、いつでもアプリケーションコンテキストを使用できます

于 2012-09-11T15:00:21.700 に答える
1

Binding単にあなたが入力したクラス名のようですdoBindService()(おそらくアクティビティ?)。クラスに別の名前が付けられている場合は、名前をに変更するか、すべてをにBinding置き換えるか、または単に。Binding.thisMyClass.thisthis

于 2012-09-11T14:59:21.090 に答える