【问题标题】:Android data binding stopped working after opening other appAndroid数据绑定在打开其他应用后停止工作
【发布时间】:2018-08-13 06:18:01
【问题描述】:

我在登录 Activity 中使用 Android 数据绑定,带有 AndroidViewModel。

在布局xml中:

 <data>
    <import type="android.view.View"/>
    <variable
        name="loginVm"
        type="com.winners.viewmodel.LoginViewModel" />
</data>

我正在我的活动的 onCreate 方法中创建如下绑定:

  mLoginViewModel = ViewModelProviders.of(this).get(LoginViewModel.class);
    mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
    mBinding.setLifecycleOwner(this);
    mBinding.setLoginVm(mLoginViewModel);

我在我的布局 xml 中绑定数据,如下所示:

android:text="@={loginVm.username}" 

这是可观察的领域:

public final ObservableField<String> username = new ObservableField<>();

android:text="@={loginVm.logInMsg}"

这是可观察的领域:

 public final ObservableField<String> logInMsg = new ObservableField<>();

或onclick绑定:

 android:onClick="@{loginVm::logIn}"

一切正常,直到我从我的应用程序打开其他应用程序,突然数据绑定文本停止工作,当我从代码更新文本时,布局不会相应更改。但 onClick 绑定继续工作。打开另一个应用程序后,只有代码中的文本绑定不起作用。

我用谷歌搜索了很多,但没有找到这种奇怪行为的答案。 希望有人可以在这里帮助我发现我做错了什么。

【问题讨论】:

    标签: android data-binding android-databinding


    【解决方案1】:

    我认为您的观察者工作不正常,请检查您的观察者如何在数据模型中存储数据。

    【讨论】:

    • 我根据android数据绑定教程link开发了数据绑定。正如我所提到的,它确实可以正常工作,直到我从我的应用程序中打开其他应用程序。
    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 2021-09-16
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多