0

バインダー オブジェクトを使用するか、サービス クラス オブジェクト自体を使用して、変数 int[] を設定できます。コードはpublic class MyActivity extends Activity.どちらにありますか、どちらも機能します:

    private BackgroundService.BackgroundBinder mBoundBinder; // to get methods of nested binder class inside BackgroundService
    private BackgroundService mBoundService; //service class object

    public void onServiceConnected(ComponentName className, IBinder binder) {
        mBoundService = ((BackgroundService.BackgroundBinder) binder).getService(); //google version
        mBoundBinder = ((BackgroundService.BackgroundBinder) binder);
    }

Service int[] 配列は、次の 2 つの方法で設定できます。

1. mBoundService.setListeners = genArr(); //genArr() returns int[]
2. mBoundBinder.setListeners(genArr());
4

1 に答える 1

0

Google android.developerバージョンでは、Service クラス内で以下を使用します。これにより、必要なnested Binder classものがサービス オブジェクト自体を返す 1 つのメソッドに縮小されるため、そのメソッドに直接アクセスできます。良い。

  public class LocalBinder extends Binder {
    LocalService getService() {
        // Return this instance of LocalService so clients can call public methods
        return LocalService.this;
    }
  }
于 2015-12-28T12:23:33.380 に答える