Skip to content
Jude edited this page Apr 9, 2016 · 6 revisions

Model层主要负责数据的获取,管理。面向上层提供数据存取。
AbsModel 是所有Model的父类,为model提供初始化的机会。与一个后台处理线程交互的入口。

在mainifests里注册Model 注册的Model会在Application启动时初始化。 没有注册就是懒加载,会在第一次使用时初始化。 在application的节点下加入,例:

    <meta-data
        android:name="MODEL"
        android:value="com.jude.beamdemo.model.QuestionModel,
                       com.jude.beamdemo.model.AccountModel"
        />

请这样编写单例

public class QuestionModel extends AbsModel {
    public static QuestionModel getInstance(){
        return getInstance(QuestionModel.class);
    }
}

##数据初始化

@Override
protected void onAppCreate(Context ctx) {
    //这里会在Beam.init()时。在主线程上执行。
}

@Override
protected void onAppCreateOnBackThread(Context ctx) {
    //这里会在Beam.init()时。在后台线程上执行。
    //主要用于初始化时文件/数据库读写。避免堵塞主线程造成启动时间过长。
}

##后台执行 runOnBackThread(Runnable runnable)即可让代码在后台线程运行。后台线程同为Looper线程。

Clone this wiki locally