Android数据绑定(bind): @Binable vs Observablefield performance

标签 android android-layout android-databinding

哪个可以提供更好的性能?

@Bindable 使用:notifyPropertyChanged(fieldName) 其中 Observablefield 在 set 方法中使用 notifyChange() 来通知文件中的所有内容。

private class User extends BaseObservable {
   private String firstName;
   private String lastName;
   @Bindable
   public String getFirstName() {
       return this.firstName;
   }
   @Bindable
   public String getLastName() {
       return this.lastName;
   }
public void setFirstName(String firstName) {
       this.firstName = firstName;
       notifyPropertyChanged(BR.firstName);
   }
   public void setLastName(String lastName) {
       this.lastName = lastName;
       notifyPropertyChanged(BR.lastName);
   }
}

对比

private class User {
   public final ObservableField<String> firstName =
       new ObservableField<>();
   public final ObservableField<String> lastName =
       new ObservableField<>();

public void setFirstName(String firstName) {
       firstName.set(firstName)
   }
   public void setLastName(String lastName) {
       lastName.set(lastName)
   }

}

最佳答案

没关系,他们都很有效率。

我的印象是,当我们调用 Observablefield .set(newValue) 方法时,它会触发 notifyChange() ,从而更新 User 的所有字段> 类,但这是不正确的。它仅在 notifyChange() 属于该 Observablefield 对象而不是 User 对象时更新该字段。

关于Android数据绑定(bind): @Binable vs Observablefield performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55738054/

相关文章:

android - 如何添加谷歌AdSense?

android - 将 GSM/GPRS 调制解调器与带有 Android things 的 Raspberry Pi 3 集成

android - 为什么 float 提示动画不起作用?

java - 简单的android应用程序列表适配器出错

android - 双向数据绑定(bind)android上编辑文本的布局错误

android - DataBinding Android,自定义 setter ,不起作用?

android 数据绑定(bind) <include> 布局 OnClick 监听器不起作用

java - Android 通用 AsyncTask 类

android - java.lang.RuntimeException : Method called after release() 错误

android - 如何在android的默认浏览器选择列表中添加我的浏览器?