Android mvp简单模型搭建及其防内存泄漏解决办法

1.说明:

    此文是参考鸿洋博客的浅析mvp文章和设计模式解析实战mvp介绍而自己整理的构建mvp思路及优化的demo

   demo下载网址:http://download.csdn.net/detail/u010672559/9782317

2.mvp简单介绍:

    即model,view,presenter。简单来说mvp是mvc的升级版,最大的好处就是通过presenter将model和view隔离,减少彼此间的耦合,也使activity作为view看上去清晰明了,方便后期维护升级,缺点就是会增加很多的接口和类,所以综合来说,一般简单的界面和业务逻辑也不多的情况可以不用mvp,界面复杂且业务逻辑比较多的还是建议用,mvp架构模式好些。

3.先是将鸿洋博客的例子复制粘贴了一边,然后又理解了一下原理,整理了下思路,又自己搭建了一次,后面想起设计模式书中介绍的线程中的当耗时操作还没执行完时,如果activity销毁了,presenter中的view会持有activity的引用,会存在内存泄漏问题,所以又结合了书中的例子完善了一下。
4.MVP搭建思路:
4.1首先是建activity,搭好基本的UI界面,业务逻辑为输入用户名密码,点击登录显示进度条,执行耗时操作,验证,之后隐藏进度条,正确则toast提示成功,否则提示失败,initview。
 


4.2然后是执行点击登录时要执行耗时操作,则需要构建个presenter对象,主要是为了处理view和model之间的业务逻辑,所以首先需要传view的接口对象进去,所以此时需要建view包,写好ILonginView接口(主要是为了通过此接口从activity中获得view控件,然后通过控件的api获得数据或显示,之后activity会实现此接口,便会在acitivity重写这些方法),具体里面的方法根据需要添加,比如登录时需要有用户名/密码,所以添加getName和getPassword方法,点击登录时需要显示进度条,所以需要加show和hide进度条的方法,之后验证了需要添加登录成功和失败的方法,其实开始想不到这些,后面有需要时去加也是一样的,总之这些方法全部都是关于activity的UI显示的。这样做的目的就是使activity只要initview,然后实现接口,重写这些方法,然后按需要通过调用控件的api执行一些简单的UI显示等逻辑就可以了,至于处理耗时操作等逻辑则交给presenter去处理。
private void initView() {
    etName=(EditText)findViewById(R.id.et_name);
    etPassword=(EditText)findViewById(R.id.et_password);
    btLogin=(Button)findViewById(R.id.bt_login);
    btClear=(Button)findViewById(R.id.bt_clear);
    btLogin.setOnClickListener(this);
    btClear.setOnClickListener(this);
    progressBar=(ProgressBar)findViewById(R.id.progressBar);
}
 
==============================================================
public interface ILoginView {
    void showProgress();
    void hideProgress();
    String getName();
    St
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值