我知道绑定服务生存只有活动或任何组件需要它。 我们必须从onBind函数调用MyLocalBinder类。 为什么会这样? 为什么我们不能直接调用它?
public class MyService extends Service {
private final IBinder myBinder = new MyLocalBinder();
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return myBinder;
}
public String getCurrentTime(){
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss", Locale.UK);
return (df.format(new Date()));
}
public class MyLocalBinder extends Binder{
MyService getService(){
return MyService.this;
}
}
}
答案 0 :(得分:0)
如果您在同一个应用程序中使用活页夹调用,那么它是一种从其他组件(如活动)访问某些服务类功能的方法。
如果您在应用程序之间使用binder api调用,则意味着您尝试使用应用程序中的远程功能。由于两个应用程序在自己的进程中运行,因此绑定器将像一个具有安全性的管道。
您无法直接调用MyBinder类,因为您无法直接访问服务类成员。由于bindservice使用binder对象提供回调,因此建议遵循此方法。