做android有一段时间了,之前自己老是粗粗的整理了之后放在云盘上,没有认真细致的去整理,现在空下来,要求自己把知识整理一下,巩固一下,顺便也可以跟大家一起交流和学习,那就从基础开始记录好了,首先要知道,android四大组件分别为Activity、Servic服务、Content Provider 内容提供者、Broadcast Receiver 广播接收器。
今天就整理一下android四大组件之一activity。
一、什么是activity
1.一个activity通常展现为一个可视化的用户界面,
2.一个应用程序可能只包含一个或者多个activity,
3.每个activity都会有一个用于绘制用户界面的窗口。
它就像是一个大容器,可以放下一些按钮,图片,各种控件等。
二、activity的生命周期
要学会使用activity,熟练掌握它的生命周期是非常有必要的,在activity中从开始创建到销毁的过程中,不同的阶段调用不同的方法
1、protected void onCreate(Bundle savedInstanceState)//创建
onCreate(Bundle)接口是初始化activity的地方. 在这儿通常可以调用setContentView(int)设置在资源文件中定义的UI, 使用findViewById(int) 可以获得UI中定义的窗口.
2、protected void onStart()//开始
3、protected void onResume()//开始//启动
4、protected void onPause()//暂停
onPause()接口是使用者准备离开activity的地方,在这儿,任何的修改都应该被提交(通常用于ContentProvider保存数据).
5、protected void onStop()//停止
6、protected void onRestart()//重启
7、protected void onDestroy()//销毁
在这七个生命周期方法中,常用到的几个过程如下
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
三、activity之间的通信
方法一:通过Intent来进行参数的传递,在Intent中有各种putXXX方法来存放各种参数,然后在子Activity接收到这个 Intent时能够从这个Intent里取出这个参数,利用getIntnet()。getXXXExtra()方法就可以了。
方法二:当一个主Activity想从一个子Activity接受消息时可以使用StartActivityforResult方法,例如这样启动一个Activity,startActivityForResult(i, REQUEST_CODE); 然后在主Activity中的onActivityResult方法对requestCode进行判断来对子Android Activity类不同的返回处理不同的情况,另外子Activity也可以利用setResult方法来设置主Activity方法中的 resultCode,这样主Activity也可以根据子Activity的不同的resultCode来处理不同的情况。
方法三:使用SharedPreferences
SharedPreferences 使用 xml 格式为 Android 应用提供一种永久的数据存贮方式。对于一个 Android 应用,它存贮在文件系统的/data/ data/your_app_package_name/shared_prefs/目录下,可以被处在同一个应用中的所有 Activity 访问。Android 提供了相关的 API 来处理这些数据而不需要程序员直接操作这些文件或者考虑数据同步问题。
方法四:数据库SQLite等。