Android Activity和Intent机制进修条记

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 componentAction
ACTION_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是一系列的可选行动中的一个,这些行动可以在同一块数据上执行。尚有其他的为

ConstantMeaning
CATEGORY_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.  

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8491.html