重新阅读Developers文档--Activities

    入门的时候看《google android入门》,后来看《android 4 高级编程》,现在看Developers文档。


    给我的感觉是,入门书籍没白看,高级编程这本书浪费钱了,翻译一般,而且内容与Developers 文档雷同。


    要说有不同的地方,就是作者加了一些例子,如ToDoList。而且看Developers 文档,详尽,明白。


    今天主要看了Activities,要点如下:


    1 当要保存UI的状态的时候,可以不自己手动保存,系统会自动完成。但是如果当要自己重写onSaveInstanceState() 的时候, 


    最好是要super.onSave....,否则系统自动帮我们完成的保存UI状态的便利就没了。


    2 onSaveInstanceState(),系统并不保证一定会调用这个方法,尤其是在用户按下返回按钮的时候。鉴于此,应该在这个方法里


   保存一些非持久性数据,而对于持久性数据的保存,应该放在onPause()中。


    3 对于资源的释放,由于onDestroy()方法并不能保证一定会被调用(如在onCreate() 中调用finish()),那么最好是放在


    onStop()中。


    4 onSaveInstanceState() 的调用时间并不很确定,有可能在onPause() 之前,也有可能在onStop()之前。


     5 在开启新的Activity的时候,新旧两个Activity的方法调用有重合的地方。如下:

  1. Activity A's onPause() method executes.
  2. Activity B's onCreate(), onStart(), and onResume()methods execute in sequence. (Activity B now has user focus.)
  3. Then, if Activity A is no longer visible on screen, its onStop() method executes.

    6 在配置发生改变的时候,有两种处理方式。

        A 将比较大的数据(比如从Internet获取到的)以某一对象的形式,放在 Object onRetainNonConfigurationInstance() 回调方法


        中,并放回它。这样activity在onCreate的时候,调用getLastNonConfigurationInstance()来获取刚刚保存的数据对象。这样做


        的好处就是可以提升用户提样,让用户不必再次获取一次比较大量的数据,当然这些数据要与当前Context无关,否则可能会发


        生内容泄漏(就是有一些垃圾得不到回收,因为当前还保留着一些与Context相关的引用)


        B 在Activity里配置 configChanges,并且重写onConfigurationChanged方法。但是这么做,要完全负起责任。因为就像选装屏


        幕这种事件, 一旦定义了configChanges = "orientation|screenSize",那么除非自己做处理,否则是不会自动在layout 与 layout-


        land之间做转换。


That's All.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值