Android之练习MVVM+DataBinding框架模式

本文探讨了MVVM架构在数据绑定和内存管理上的局限性,强调了数据双向绑定可能导致的问题,并提出了使用LiveData和ViewModel来优化的解决方案。实例代码展示了MVVM组件的使用以及可能遇到的问题解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVVM的缺点

  1. 数据绑定使得 Bug 不易调试,也会使得一个位置的 Bug 被快速传递到别的位置。

  2. 虽然使用Model方便了保证数据一致性,但是大的模块中长期不释放内存就会造成花费更多的内存。

  3. 数据双向绑定不利于View部分的代码复用。

再更深层次学习,可以使用LiveData+ViewModel

以下是采用MVVM框架的代码:


Account.java

public class Account {

String name;

int level;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getLevel() {

return level;

}

public void setLevel(int level) {

this.level = level;

}

}

MCallBack.java

public interface MCallback {

public void onSuccess(Account account);

public void onFailed();

}

MVVMActivity.java

public class MVVMActivity extends AppCompatActivity {

private ActivityMvvmBinding binding;

private MVVMViewModel mvvmViewModel;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

binding = DataBindingUtil.setContentView(this,R.layout.activity_mvvm);

mvvmViewModel = new MVVMViewModel(getApplication(),binding);

binding.setViewModel(mvvmViewModel); //初始化viewModel

}

}

MVVMModel.java

public class MVVMModel {

//模拟查询账号数据

public void getAccountData(String accountName, MCallback callback){

Random random = new Random();

boolea

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值