Intent目前翻譯為意圖,所謂意圖就是想做什么。是Android系統(tǒng)組件之間的通信的橋梁。其描述的基本內(nèi)容可以分為:conponentName(組件名稱)、Action(動(dòng)作名稱)、Data(數(shù)據(jù))、Category(類別)、Extra(附加數(shù)據(jù))和Log(標(biāo)志位)六個(gè)部分。
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的扶綏網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
1 、指定conponentName
指定組件名稱的方式又叫顯示調(diào)用,明確要調(diào)用的組件,直接調(diào)用組件名,調(diào)用方式如下
Intent goto = new Intent(); goto.setClass(OneActivity.this,Second.class); OnActivity.this.startActivity(goto);
當(dāng)然兩個(gè)Activity必須在AndroidManifest.xml注冊(cè)。
2 、指定Action
沒有明確指出組件名,隱式調(diào)用,需要和Data,Catagory,Extra配合使用。這個(gè)隱式調(diào)用又分為靜態(tài)調(diào)用和動(dòng)態(tài)調(diào)用。
(一)靜態(tài)隱式調(diào)用
這種調(diào)用在方式上面體現(xiàn)為必須將要調(diào)用的組件的IntentFilter在AndroidManifest.xml里面注冊(cè),并且至少需要一個(gè)
下面是Activity中的寫法,目的是Activity傳遞數(shù)據(jù)給BroadcastReceiver
Intent sendIntent = new Intent("intent_1");//動(dòng)作名稱為action_1 sendIntent.putExtra("sendmsg","你好");//存儲(chǔ)數(shù)據(jù)到Intent中,通過廣播攜帶到目的組件中 MainActivity.this.sendBroadcast(sendIntent);//發(fā)送廣播
廣播內(nèi)容
public class MyBroadCastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context,Intent intent){ Toast.makeText(context,intent.getExtra("sendmsg"), Toast.LENGTH_LONG).show(); } }
注冊(cè)接收者,必須要,不然過濾器無法找到
同樣的道理,在Activity和Activity之間通訊的時(shí)候,不過Activity在注冊(cè)的時(shí)候要加一個(gè)標(biāo)簽
(二)動(dòng)態(tài)隱式調(diào)用
也就是不在注冊(cè)文件里面注冊(cè)intentFilter而是需要調(diào)用的時(shí)候再注冊(cè)。如下
IntentFilter myfilter = new IntentFilter(); MyBroadCast mybroad = new MyBroadCast(); myfilter.addAction("action_3"); registerReceiver(mybroad,myfilter); //動(dòng)態(tài)注冊(cè) Intent intent = new Intent(); intent.putExtra("msg","哈哈"); intent.setAction("action_3"); Main.this.sendBroadcast(intent);
3、使用系統(tǒng)自帶的ActionName
由于實(shí)在太多這里就不詳解了,用法大致為:
Intent intent = new Intent(Intent.ACTION_DIAL);//顯示電話撥號(hào)界面 this.startActivity(intent);
//打開瀏覽器并且指定網(wǎng)頁 Uri uri = Uri.parse(" Intent intent = new Intent(Intent.ACTION_VIEW,uri); this.startActivity(intent);
以下是所有系統(tǒng)自帶ActionName:
android.intent.action.ALL_APPS android.intent.action.ANSWER android.intent.action.ATTACH_DATA android.intent.action.BUG_REPORT android.intent.action.CALL android.intent.action.CALL_BUTTON android.intent.action.CHOOSER android.intent.action.CREATE_LIVE_FOLDER android.intent.action.CREATE_SHORTCUT android.intent.action.DELETE android.intent.action.DIAL android.intent.action.EDIT android.intent.action.GET_CONTENT android.intent.action.INSERT android.intent.action.INSERT_OR_EDIT android.intent.action.MAIN android.intent.action.MEDIA_SEARCH android.intent.action.PICK android.intent.action.PICK_ACTIVITY android.intent.action.RINGTONE_PICKER android.intent.action.RUN android.intent.action.SEARCH android.intent.action.SEARCH_LONG_PRESS android.intent.action.SEND android.intent.action.SENDTO android.intent.action.SET_WALLPAPER android.intent.action.SYNC android.intent.action.SYSTEM_TUTORIAL android.intent.action.VIEW android.intent.action.VOICE_COMMAND android.intent.action.WEB_SEARCH android.net.wifi.PICK_WIFI_NETWORK android.settings.AIRPLANE_MODE_SETTINGS android.settings.APN_SETTINGS android.settings.APPLICATION_DEVELOPMENT_SETTINGS android.settings.APPLICATION_SETTINGS android.settings.BLUETOOTH_SETTINGS android.settings.DATA_ROAMING_SETTINGS android.settings.DATE_SETTINGS android.settings.DISPLAY_SETTINGS android.settings.INPUT_METHOD_SETTINGS android.settings.INTERNAL_STORAGE_SETTINGS android.settings.LOCALE_SETTINGS android.settings.LOCATION_SOURCE_SETTINGS android.settings.MANAGE_APPLICATIONS_SETTINGS android.settings.MEMORY_CARD_SETTINGS android.settings.NETWORK_OPERATOR_SETTINGS android.settings.QUICK_LAUNCH_SETTINGS android.settings.SECURITY_SETTINGS android.settings.SETTINGS android.settings.SOUND_SETTINGS android.settings.SYNC_SETTINGS android.settings.USER_DICTIONARY_SETTINGS android.settings.WIFI_IP_SETTINGS android.settings.WIFI_SETTINGS android.settings.WIRELESS_SETTINGS