zoukankan      html  css  js  c++  java
  • 第3章 Activity的生命周期

    通常,activity通过覆盖onCreate(...)方法来准备以下用户界面的相关工作:

    1. 实例化组件并将组件放置在屏幕上(调用方法setContentView(int));

    2. 引用已实例化的组件;

    3. 为组件设置监听器以处理用户交互;

    4. 访问外部模型数据。

    3.1.1 输出日志信息

    该方法的第一个参数通常以类名为值的TAG常量传入。这样,很容易看出日志信息的来源。

    
    private static final Sting TAG = "MainActivity";
    
    Log.d(TAG, "onCreate called");
    
    

    在覆盖Activity的生命周期方法中需要调用父类相应的生命周期方法,这是必不可少的。而在其他方法中,是否首先调用超类方法就不那么重要了。

    3.2 创建水平模式布局

    需要在res目录下新建一个文件夹叫做layout-land。layout-land和layout中的布局文件名应相同,这样才能被同一个资源ID引用。

    3.4 再探 Activity 生命周期

    为便于理解activity记录,我们增加一个暂存状态(stashed state)到activity生命周期,

    activity暂存后,Activity对象不再存在,但操作系统会将activity记录对象保存起来。这样, 在需要恢复activity时,操作系统可以使用暂存的activity记录重新激活activity。

    注意,activity进入暂存状态并不一定需要调用onDestroy()方法。不过,onPause()和onSaveInstanceState(...)通常是我们需要调用的两个方法。常见的做法是,覆盖onSaveInstanceState(...)方法,将数据暂存到Bundle对象中,覆盖onPause()方法处理其他需要处理的事情。

    有时,Android不仅会销毁activity,还会彻底停止当前应用的进程。不过,只有在用户离开 当前应用时才会发生这种情况。即使这种情况真的发生了,暂存的activity记录依然被系统保留着, 以便于用户返回应用时activity的快速恢复。

    那么暂存的activity记录到底可以保留多久?前面说过,用户按了后退键后,系统会彻底销毁当前的activity。此时,暂存的activity记录同时被清除。此外,系统重启或长时间不使用activity 时,暂存的activity记录通常也会被清除。

    3.6 深入学习:日志记录的级别与方法

    所有的日志记录方法都有两种参数签名:string类型的tag参数和msg参数;出tag和msg参数外再加上Throwable实例参数。附加的Throwable实例参数为应用抛出异常时记录异常信息提供了方便。

    
    try{
    
        //...
    
    }catch(Exception e){
    
        Log.d(TAG, "index was out of bounds.", e);
    
    }
    
    
  • 相关阅读:
    创建你的 /proc 文件
    在 /proc 里实现文件
    使用 /proc 文件系统
    printk函数速率限制
    printk函数打开和关闭消息
    printk 函数消息是如何记录的
    mysql存储程序
    Javascript 笔记与总结(1-1)作用域
    Java实现 LeetCode 142 环形链表 II(二)
    Java实现 LeetCode 142 环形链表 II(二)
  • 原文地址:https://www.cnblogs.com/qiaoer2/p/7110048.html
Copyright © 2011-2022 走看看