Android中,Activity是所有措施的基础,所有措施的流程都运行在Activity之中,Activity具有本身的生命周期(见,由系统节制生命周期,措施无法改变,但可以用onSaveInstanceState生存其状态)。
对付Activity,要害是其生命周期的掌握(如下图),其次就是状态的生存和规复(onSaveInstanceState onRestoreInstanceState),以及Activity之间的跳转和数据传输(intent)。
Activity中常用的函数有SetContentView() findViewById() finish() startActivity(),其生命周期涉及的函数有:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
留意的是,Activity的利用需要在Manifest文件中添加相应的<Activity>,并配置其属性和intent-filter。
Intent
Android中提供了Intent机制来协助应用间的交互与通讯,Intent认真对应用中一次操纵的行动、行动涉及数据、附加数据举办描写,Android则按照此Intent的描写,认真找到对应的组件,将 Intent通报给挪用的组件,并完成组件的挪用。Intent不只可用于应用措施之间,也可用于应用措施内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的浸染,专门提供组件相互挪用的相关信息,实现挪用者与被挪用者之间的解耦。在SDK中给出了Intent浸染的表示形式为:
通过 or 启动一个Activity;
通过 启动一个处事,可能通过 和靠山处事交互;
通过广播要领(好比 ,, ) 发给broadcast receivers。
Intent属性的配置,包罗以下几点:(以下为XML中界说,虽然也可以通过Intent类的要领来获取和配置)
(1)Action,也就是要执行的行动
SDk中界说了一些尺度的行动,包罗
onstantTarget componentActionACTION_CALL activity Initiate a phone call.
ACTION_EDIT activity Display data for the user to edit.
ACTION_MAIN activity Start up as the initial activity of a task, with no data input and no returned output.
ACTION_SYNC activity Synchronize data on a server with data on the mobile device.
ACTION_BATTERY_LOW broadcast receiver A warning that the battery is low.
ACTION_HEADSET_PLUG broadcast receiver A headset has been plugged into the device, or unplugged from it.
ACTION_SCREEN_ON broadcast receiver The screen has been turned on.
ACTION_TIMEZONE_CHANGED broadcast receiver The setting for the time zone has changed.
虽然,也可以自界说行动(自界说的行动在利用时,需要加上包名作为前缀,如"com.example.project.SHOW_COLOR”),并可界说相应的Activity来处理惩罚我们的自界说行动。
(2)Data,也就是执行行动要操纵的数据
Android中回收指向数据的一个URI来暗示,如在接洽人应用中,一个指向某接洽人的URI大概为:content://contacts/1。对付差异的行动,其URI数据的范例是差异的(可以配置type属性指定特定范例数据),如ACTION_EDIT指定Data为文件URI,打电话为tel:URI,会见网络为http:URI,而由content provider提供的数据则为content: URIs。
(3)type(数据范例),显式指定Intent的数据范例(MIME)。一般Intent的数据范例可以或许按照数据自己举办鉴定,可是通过配置这个属性,可以强制回收显式指定的范例而不再举办推导。
(4)category(种别),被执行行动的附加信息。譬喻 LAUNCHER_CATEGORY 暗示Intent 的接管者应该在Launcher中作为顶级应用呈现;而ALTERNATIVE_CATEGORY暗示当前的Intent是一系列的可选行动中的一个,这些行动可以在同一块数据上执行。尚有其他的为
ConstantMeaningCATEGORY_BROWSABLE The target activity can be safely invoked by the browser to display data referenced by a link — for example, an image or an e-mail message.
CATEGORY_GADGET The activity can be embedded inside of another activity that hosts gadgets.
CATEGORY_HOME The activity displays the home screen, the first screen the user sees when the device is turned on or when the HOME key is pressed.
CATEGORY_LAUNCHER The activity can be the initial activity of a task and is listed in the top-level application launcher.
CATEGORY_PREFERENCE The target activity is a preference panel.