【问题标题】:Use Service or Binder object to set variable inside Service使用 Service 或 Binder 对象在 Service 中设置变量
【发布时间】:2015-12-23 15:19:29
【问题描述】:

我可以通过使用 binder 对象或使用服务类对象本身来设置变量 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[] 数组可以通过两种方式设置:

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

【问题讨论】:

    标签: android android-service android-binder


    【解决方案1】:

    Google android.developer 版本在 Service 类中使用以下内容。这将必要的nested Binder class 缩减为一个返回服务对象本身的方法,因此可以直接访问其方法。好的。

      public class LocalBinder extends Binder {
        LocalService getService() {
            // Return this instance of LocalService so clients can call public methods
            return LocalService.this;
        }
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 2012-11-08
      • 1970-01-01
      相关资源
      最近更新 更多