界面开发组件Activity详解

谁说胖子不能爱 提交于 2019-11-30 08:38:02

Activity是Android中最核心的应用程序组件,是用于控制显示界面的组件。一个Activity就是一个类,该类继承了android.app.Activity,并需要重写onCreate方法,同时在AndroidManifest.xml中进行注册。

在创建Activity时需要注意几点:
1.Activity的控件初始化一般在onCreate方法中完成,比如setContentView方法装载View,而不能在Activity的构造方法中完成初始化控件。
2.Activity中必须要有一个无参的构造方法,因为Activity不是由手动创建,而是通过Intent对象和startActivity方法由系统内部创建。

Activity的生命周期
七个生命周期方法:
onCreate();当Activity第一次被调用时触发。
onStart();当Activity能被用户看到时触发。
onResume();当Activity获得用户焦点时触发,即用户可以对Activity进行操作时。
onPause();当准备启动另一个Activity时被触发。
onStop();当另一个Activity启动完成,而原Activity不可见时被触发。
onRestart();当一个处于shop状态的Activity被重新启动时触发。
onDestroy();手动调用了Activity的finish方法时、或当系统资源不够用时、或点击了Android的返回按钮时都会被触发。

第一次被调用时:onCreate();-->onStart();-->onResume();
组件失去焦点时:onPause();-->onStop();
重新获得焦点时:[onPause]-->onResume();
                          [onStop]-->onRestart();-->onStart();-->onResume();

Activity之间传递数据大致有四类方式:
1.通过Intent进行数据传递。
2.通过定义Activity的静态变量的方式传递。(不推荐)
3.通过系统剪切板传递字符数据(对象类型可考虑将对象序列化后保存)。
4.通过定义一个全局对象来保存一些长驻内存的数据。(需继承android.app.Application,带无参构造方法,在AndroidManifest.xml中进行注册)

Intent对象包含了一组信息(可以跨应用进行传递调用,通过startActivity(intent)实现Activity间的切换):
1.Componentname
指定启动哪个组件,Intent还可以启动Service(服务)和Broadcast Receiver(广播接收器)。
intent.setClass(Context,class);

2.Action
指定被启动的组件做什么动作,官方自带了一些动作常量:ACTION_CALL、ACTION_EDIT、ACTION_MAIN等等。
intent.setAction(String);

3.Data
用于保存组件间传递的数据对象。MIME的数据类型。

4.Category

5.Extras
额外附加的键值队数据(Key-Value)

6.Flags

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!