状态管理 界面数据信息

为什么写状态管理?
对于Activity,Fragment里面的数据 做一个统一的管理,处理
实现方法
1、新增一个BaseState的状态管理器,复杂的界面新加一个状态管理,用于管理当前界面的数据处理

   /**
    * 全局基类管理状态
    *
    * @author Admin
    */
   public abstract class BaseState {
      
       /**
        * 进入状态
        */
       protected abstract void enterState();
   
   
       /**
        * 退出状态
        */
       protected abstract void outState();
   
   }

2、创建一个StateManager,项目的状态管理类,存放在Application中,初始化出项目需要的所有状态管理

 public class StateManager {
    MyFragmentState myFraState;
    LoginState loginState;
    RegionState regionState;


    /**
     * 初始化各个界面的状态管理
     */
    public void initState() {
        //主界面设备列表的状态管理
        myFraState = new MyFragmentState();

        //登录状态
        loginState = new LoginState();
        //片区状态
        regionState = new RegionState();
    }


    public MyFragmentState getMyFraState() {
        return myFraState;
    }

    public LoginState getLoginState() {
        return loginState;
    }

    public RegionState getRegionState() {
        return regionState;
    }
}

在Application 中初始化,并对所有状态管理进行初始化

public class MyApplication extends Application {

    /**
     * 状态管理
     */
    StateManager stateManager;

	@Override
    public void onCreate() {
        super.onCreate();

		//状态管理初始化
        stateManager = new StateManager();
        stateManager.initState();
 	}	
}

3、对于一个Activity,新增一个State状态管理类(例子:登录界面)
新增一个LoginState 对于LoginActivity做数据状态管理,管理用户的登录信息

 	public class LoginState extends BaseState {

    /**
     * 个人信息
     */
    static LoginModel loginModel = null;

    @Override
    protected void enterState() {
        loginModel = new LoginModel();
    }

    @Override
    protected void outState() {

    }

    public LoginModel getLoginModel() {
        return loginModel;
    }

    public void setLoginModel(LoginModel model) {
        loginModel = model;
    }
    
    public Long getSessionId() {
        return loginModel.getSessionId();
    }
}

在LoginActivity中得到Application中的实例

	 //状态实例
 	 LoginState loginState;

    @Override
    protected void initView() {
        //得到登录状态管理
        loginState = MyApplication.getApplication().getStateManager().getLoginState();
        loginState.enterState();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        loginState.outState();
    }

之后就可以在LoginActivity中对于该实例进行自己的操作了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值