OSC源码学习随笔.2

来源:互联网 发布:淘宝上的天王表是正品 编辑:程序博客网 时间:2024/05/23 20:07

        研究 application 时,联想到实际项目中重复登录需要实时结束 activity 的情况

        在OSC中,监听到程序发出的全局退出广播后,程序有专门的 activity 堆栈管理类 AppManager,BaseActivity 中 调用 AppManager.getAppManager().addActivity(),在需要时 AppManager.getAppManager().AppExit() 即可。不使用堆栈,在 BaseActivity 注册广播,接收到后直接 finish() 貌似是更好的选择,不用理会每个 activity 中的业务也不会造成内存的溢出

        为了弥补没有使用抽象父类的项目结构,也可以在自己项目的 application 里声明 List<Activity>,但同样需要在每个 activity 里手动的 getApplicationContext().add 或者 getApplicationContext().remove 操作集合,最后在程序结束或者需要全局退出时仍然通过 getApplicationContext() 取得 application 再遍历 List,然后 finish() 掉即可。在整个应用的生命周期中维护一个List,极易产生内存堆积,处理不好就是内存溢出


BaseActivity:

        定义统一 Dialog、ActionBar、注册 activity 堆栈等操作。实际项目中如上所述,可以注册广播监听、网络判断、吐司……

        还能通过抽象 activity 的接口,让基类(BaseActivity)去实现接口更多的方法以降低耦合。类似开启服务、检查GPS、获取上下文以及 sharedpreferences 配置

       

       

       

0 0
原创粉丝点击