使用 Service 或 Binder 对象在 Service 中设置变量
Use Service or Binder object to set variable inside Service
我可以通过使用活页夹对象或使用服务 class 对象本身来设置变量 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());
Google android.developer 版本使用以下内部服务 class。这将必要的 nested Binder class
缩减为一个返回服务对象本身的方法,因此可以直接访问其方法。好的。
public class LocalBinder extends Binder {
LocalService getService() {
// Return this instance of LocalService so clients can call public methods
return LocalService.this;
}
}
我可以通过使用活页夹对象或使用服务 class 对象本身来设置变量 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());
Google android.developer 版本使用以下内部服务 class。这将必要的 nested Binder class
缩减为一个返回服务对象本身的方法,因此可以直接访问其方法。好的。
public class LocalBinder extends Binder {
LocalService getService() {
// Return this instance of LocalService so clients can call public methods
return LocalService.this;
}
}