综合百科

Intent简单介绍


Intent目前翻译为意图,所谓意图就是想做什么。是Android系统组件之间的通信的桥梁。其描述的基本内容可以分为:conponentName(组件名称)、Action(动作名称)、Data(数据)、Category(类别)、Extra(附加数据)和Log(标志位)六个部分。

1 、指定conponentName

指定组件名称的方式又叫显示调用,明确要调用的组件,直接调用组件名,调用方式如下

Intentgoto=newIntent();goto.setClass(OneActivity.this,Second.class);OnActivity.this.startActivity(goto);

当然两个Activity必须在AndroidManifest.xml注册。


2 、指定Action

没有明确指出组件名,隐式调用,需要和Data,Catagory,Extra配合使用。这个隐式调用又分为静态调用和动态调用。

(一)静态隐式调用

这种调用在方式上面体现为必须将要调用的组件的IntentFilter在AndroidManifest.xml里面注册,并且至少需要一个<action>标签,没有则任何Intent都不匹配。

下面是Activity中的写法,目的是Activity传递数据给BroadcastReceiver

IntentsendIntent=newIntent("intent_1");//动作名称为action_1sendIntent.putExtra("sendmsg","你好");//存储数据到Intent中,通过广播携带到目的组件中MainActivity.this.sendBroadcast(sendIntent);//发送广播

广播内容

publicclassMyBroadCastReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){Toast.makeText(context,intent.getExtra("sendmsg"),Toast.LENGTH_LONG).show();}}

注册接收者,必须要,不然过滤器无法找到

<receiverandroid:name=".MyBroadCastReceiver"><intent-filter><actionandroid:name="intent_1"/></intent-filter></receiver>

同样的道理,在Activity和Activity之间通讯的时候,不过Activity在注册的时候要加一个标签

<intent-filter><actionandroid:name="intent_2"/><categoryandroid:name="android.intent.category.DEFAULT"/></intent-filter>


(二)动态隐式调用

也就是不在注册文件里面注册intentFilter而是需要调用的时候再注册。如下

IntentFiltermyfilter=newIntentFilter();MyBroadCastmybroad=newMyBroadCast();myfilter.addAction("action_3");registerReceiver(mybroad,myfilter);//动态注册Intentintent=newIntent();intent.putExtra("msg","哈哈");intent.setAction("action_3");Main.this.sendBroadcast(intent);

3、使用系统自带的ActionName

由于实在太多这里就不详解了,用法大致为:

Intentintent=newIntent(Intent.ACTION_DIAL);//显示电话拨号界面this.startActivity(intent);
//打开浏览器并且指定网页Uriuri=Uri.parse("Intentintent=newIntent(Intent.ACTION_VIEW,uri);this.startActivity(intent);

以下是所有系统自带ActionName:

android.intent.action.ALL_APPSandroid.intent.action.ANSWERandroid.intent.action.ATTACH_DATAandroid.intent.action.BUG_REPORTandroid.intent.action.CALLandroid.intent.action.CALL_BUTTONandroid.intent.action.CHOOSERandroid.intent.action.CREATE_LIVE_FOLDERandroid.intent.action.CREATE_SHORTCUTandroid.intent.action.DELETEandroid.intent.action.DIALandroid.intent.action.EDITandroid.intent.action.GET_CONTENTandroid.intent.action.INSERTandroid.intent.action.INSERT_OR_EDITandroid.intent.action.MAINandroid.intent.action.MEDIA_SEARCHandroid.intent.action.PICKandroid.intent.action.PICK_ACTIVITYandroid.intent.action.RINGTONE_PICKERandroid.intent.action.RUNandroid.intent.action.SEARCHandroid.intent.action.SEARCH_LONG_PRESSandroid.intent.action.SENDandroid.intent.action.SENDTOandroid.intent.action.SET_WALLPAPERandroid.intent.action.SYNCandroid.intent.action.SYSTEM_TUTORIALandroid.intent.action.VIEWandroid.intent.action.VOICE_COMMANDandroid.intent.action.WEB_SEARCHandroid.net.wifi.PICK_WIFI_NETWORKandroid.settings.AIRPLANE_MODE_SETTINGSandroid.settings.APN_SETTINGSandroid.settings.APPLICATION_DEVELOPMENT_SETTINGSandroid.settings.APPLICATION_SETTINGSandroid.settings.BLUETOOTH_SETTINGSandroid.settings.DATA_ROAMING_SETTINGSandroid.settings.DATE_SETTINGSandroid.settings.DISPLAY_SETTINGSandroid.settings.INPUT_METHOD_SETTINGSandroid.settings.INTERNAL_STORAGE_SETTINGSandroid.settings.LOCALE_SETTINGSandroid.settings.LOCATION_SOURCE_SETTINGSandroid.settings.MANAGE_APPLICATIONS_SETTINGSandroid.settings.MEMORY_CARD_SETTINGSandroid.settings.NETWORK_OPERATOR_SETTINGSandroid.settings.QUICK_LAUNCH_SETTINGSandroid.settings.SECURITY_SETTINGSandroid.settings.SETTINGSandroid.settings.SOUND_SETTINGSandroid.settings.SYNC_SETTINGSandroid.settings.USER_DICTIONARY_SETTINGSandroid.settings.WIFI_IP_SETTINGSandroid.settings.WIFI_SETTINGSandroid.settings.WIRELESS_SETTINGS


上一篇:什么是计算机操作系统
下一篇:ssh框架