參考于Android官方文檔
Activity
Activity是android應(yīng)用的關(guān)鍵組件,與桌面系統(tǒng)不同的是牺蹄,android應(yīng)用有多種啟動(dòng)入口惨远。當(dāng)一個(gè)應(yīng)用調(diào)用另一個(gè)應(yīng)用時(shí)躯枢,調(diào)用方法會(huì)調(diào)用另一個(gè)應(yīng)用的activity,而不是整個(gè)app司忱。這種情況下activity充當(dāng)了與用戶交互的入口皇忿。通常一個(gè)app有一個(gè)mainActivity作為app啟動(dòng)時(shí)的入口。雖然Activity是在協(xié)同工作坦仍,但每個(gè)Activity間只存在很少的依賴鳍烁。要在app中使用activity,需要在androidmanifest.xml桨踪,也就是清單中聲明關(guān)于Activity的信息老翘,管理Activity的生命周期。
Androidmanifest.xml
聲明一個(gè)activity,需要在androidmanifest中將該activity作為application元素的子元素铺峭。activity元素唯一必要的屬性是android:name墓怀。(發(fā)布應(yīng)用后,activity:name熟悉不應(yīng)該更改)
<manifest ... >
<application ... >
<activity android:name=".ExampleActivity" />
...
</application ... >
...
</manifest >
Intent過(guò)濾器是一個(gè)消息傳遞對(duì)象卫键,借助這項(xiàng)功能傀履,可以通過(guò)顯式請(qǐng)求與隱式請(qǐng)求來(lái)啟動(dòng)Activity。
使用Intent功能莉炉,需要在<activity>元素中聲明<intent-filter>屬性钓账,該熟悉包含<action>元素,可選的<category>元素與<data>元素絮宁。通過(guò)這些元素可以指定Activity能夠響應(yīng)的intent類型梆暮。
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
上述例子中,<action>指定該Activity會(huì)發(fā)送數(shù)據(jù)绍昂,將<category> 元素聲明為 DEFAULT 可使 Activity 能夠接收啟動(dòng)請(qǐng)求啦粹。<data>元素指定此 Activity 可以發(fā)送的數(shù)據(jù)類型。以下代碼段展示了如何調(diào)用上述 Activity:
// Create the text message with a string
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
// Start the activity
startActivity(sendIntent);
實(shí)例化Intent對(duì)象后窘游,使用sentAction()為Intent指定操作唠椭,ACTION_SEND意味使用發(fā)送數(shù)據(jù)的Action,setType設(shè)定數(shù)據(jù)類型忍饰,putExtra則是攜帶完成請(qǐng)求操作所需的附加信息的鍵值對(duì)贪嫂。最后將該Intent傳入啟動(dòng)Activity方法中。
可以使用清單的 <activity>標(biāo)記來(lái)控制哪些應(yīng)用可以啟動(dòng)某個(gè) Activity艾蓝。父 Activity 和子 Activity 必須在其清單中具有相同的權(quán)限力崇,前者才能啟動(dòng)后者。如果您為父 Activity 聲明了 <uses-permission>元素饶深,則每個(gè)子 Activity 都必須具有匹配的 <uses-permission>元素餐曹。
Activity的生命周期
onCreat()
onStart()
onResume()
onPause()
onStop
onRestart()
onDestroy()
暫時(shí)就到這里