自学安卓编程权威指南(三)

1.在不同的activity的生命周期中,当activity在运行,暂停,停止,和不存在这四种状态转换的时候,都会有相应的啊activity方法来发消息通知activity,下面是正常activity周期的运行过程

(1)onCreate()  (此时对象实例存在在内存中)-->onStart()  (此时视图部分或全部可见)-->onResume()  (此时用户与当前activity交互)-->onPauses()-->onStop()-->onDestroy()

2.activity子类可以在activity的生命周期状态发生关键性转换时完成某些工作,我们叫它们为生命周期回调方法

3.通常在onCreate()方法中,activity可以来预处理以下的UI相关工作,

(1)实例化组件并将他们放置在屏幕上,(2)引用已实例化的组件,为组件设置监听器以处理用户交互,访问外部模型数据

4.通常我们能会使用。log.d(String.String)来打印某些消息,第一个参数是日志来源,第二个是日志内容

5.我们都是先调用超类的方法再去使用某些具体的方法,这些超类方法的调用不可缺少

6.当设备旋转后,系统会销毁当前的实例,然后创建一个新的实例,在运行时配置变更发生时,可能会有更合适的资源来比配新的配置,下面是创建水平模式的布局

右击res目录,选择New ->Android resource directory菜单项,写出相对应的资源特征,然后在待选的Orientation,然后点击>>按钮将它移动到已选的资源特征中去,确认选中下拉列表的Landscape选项,并确定目录名显示为layout-land,最后点击OK创建res/layout-land,然后在相对应的竖直布局中,将其布局文件复制到layout-land目录中去,两个文件的文件名必须是一样的,这样他们才可能以同一个资源ID被应用

 

7.在需要子件的布局中,我们可能会使用FrameLayout,FrameLayout是最简单的ViewGroup组件,它的子视图的位置排列都是靠他们自己的android:layout_gravity属性

8.使用onSaveInstanceState()这个方法来保存数据,该方法通常在onStop()方法前调用,这个方法默认把所有activity视图将自身状态数据保存在Bundle对象中,Bundle是存储字符串键与限定类型之间的一种结构,

9.可以通过覆盖onSaveInstance(Bundle)方法,将一些数据保存在bundle中,然后通过onCreate(Bundle)方法来取回这些数据,如下面的样子

先定一个键

private statIc final String KEY_INDEX = "index";

后覆盖onSaveInstanceState(bundle)

public void onSaveInstanceState(Bundle savedInstanceState) {

super.onSaveInstanceState(savedInsstanceState);

savedInstanceState.putInt(KEY_INDEX,mCurrentIndex);

}

 

最后在onCreate()方法中,检查存储bundle的信息,

protected void onCreate(Bundle savedinstanceState) {

super.onCreate(savedinstanceState);

setContentView(R.layout.);

if(savedInstanceState !=null) {

mCurrentIndex = savedInstanceState.getInt(KEY_INDEX,0);

10.在Bundle中存储和恢复的数据类型只能是基本数据类型,以及可以实现Serializable和Parcelable接口的对象,比较好的方法是通过其他方法保存定制的类对象,而在Bundle中保存标识对象的基本类型对象、

11.覆盖onSaveInstanceState(Bundle)方法来保存当前activity的小的或是暂存的数据,而覆盖onStop()方法来保存永久性的数据,如用户编辑的文字

 

}

}

 

 

 

 

 

 

你可能感兴趣的:(自学安卓编程权威指南)