【Android学习笔记】Activity--侃天诌地

来源:互联网 发布:java环境变量win8 编辑:程序博客网 时间:2024/06/06 14:21

一、What is a activity?

Activity作为Android的四大组件(activity、service、content provider、broadcast receiver)之一,是我们最常打交道的。Activity为用户提供了一个用来交互的界面(其中可以包含很多组件),是app与用户交流的窗口,比如打电话、拍照等等。通常情况下,它会填满整个屏幕,当然你可以通过manifest和代码的方式来改变它的style。

二、How to create it?

我们往往通过继承Activity类来创建我们自己的activity。Android讲究逻辑与视图分离,所以一个activity往往对应一个布局文件。通过调用生命周期中的onCreate方法中的setContentView()来加载对应的xml布局文件。相应的通过调用finish()方法来销毁activity(四大组件都必须在manifest中进行配置)。

三、多个activities如何传递数据

说到传递数据,我们首先想到的会是一个activity如何启动另一个activity。Intent(意图)可以帮助我们来完成。Intent即表示干啥,有两种表现方式。
1.显示意图。即明确表明干的目标,通过java的反射机制来操作。
Intent intent = new Intent(this, AnotherActivity.class);startActivity(intent);
2.隐式意图。即只表明干的行为,通过设置action、category、data来含蓄的表达要干的事情,比如喝茶,具体什么茶不清楚。
Intent intent = new Intent(Intent.ACTION_SEND);startActivity(intent);
这里往往是启动一些系统内置的东西通过设置data+Uri来操作。具体的uri的解释http://blog.csdn.net/ljz2009y/article/details/7678027
以上我们是利用了startActivity(intent)来启动的另一个activity,还有另外一种,比如有时候你需要从另外一个activity获取某些数据,这时候你可以利用startActivityForResult并重写onActivityResult来获取数据,我们只需要在第二个activity关闭之前构建一个intent,并putExtra添加数据即可。

四、Activity lifecycle

生命周期是activity中最重要的概念,因为我们会利用不同的寿命周期方法来实现比如资源初始化、资源的临时保存、资源释放等一系列的操作,而不同的生命周期方法的角色或者说任务是不同的。

我们需要记住每个activity都有三种基本状态:
1.onResumed,用户获取到焦点,可以进行各种操作
2.onPaused,activity被部分覆盖,用户不能点击
3.onStopped,activity不可见,系统会在需要的时候回收
生命周期中中最重要的有两个方法
onCreate,实现资源的初始化
onPause,保存临时数据,会与onSaveInstanceState方法结合使用

五、Activity的launch mode

1.standard,即普通的压栈出栈
2.singleTop,检查栈顶,如果有,则直接调用,否则new一个新的
3.singleTask,检查整个栈,如果有,则直接使用,否则new一个新的
4.singleInstance,单独放到一个任务栈中
了解了以上的启动模式,在实际的开发中就会使用,比如我有一个播放器的播放activity,那么我不想(也不应该)每首歌都开一个activity,这时候你就可以考虑启动模式了。具体的scenario参考http://blog.csdn.net/xiaodongrush/article/details/28597855

六、其他及参考文献

Activity的生命周期方法可以通过打log的方式来体验一下。
onSaveInstanceState可以通过横竖屏(为了满足屏幕的要求,系统会销毁并创建这个activity)切换来体验
参考文献:官方文档

0 0
原创粉丝点击