一個 APP 通常由多個 Activity 組成撤逢。Activity 之間是一種松散的組成關(guān)系石咬,它不僅可以在自己的 APP 中使用,也可以被其他 APP 單獨調(diào)用慷嗜。
如果要調(diào)用其他 APP 中的 Activity 需要在清單文件 manifest 中聲明颂斜。
Declare activities
<manifest ... >
<application ... >
<activity android:name=".ExampleActivity" />
...
</application ... >
...
</manifest >
Activity 有兩種啟動方式: 隱式 和顯式夫壁。顯式通過明確的類來啟動,隱式通過 intent-filter 調(diào)用沃疮。
Declare intent filters
<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>
// 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);
一個 Activity 要調(diào)用另一個 Activity盒让,他們必須擁有相同的權(quán)限。
Declare permissions
<manifest>
<activity android:name="...."
android:permission=”com.google.socialapp.permission.SHARE_POST”
/>
<manifest>
<uses-permission android:name="com.google.socialapp.permission.SHARE_POST" />
</manifest>
Managing the activity lifecycle
onCreate()
初始化 Activity司蔬,setContentView() 設(shè)置布局視圖邑茄。
onStart()
Activity 對用戶已經(jīng)可見。
onResume()
與用戶交互前的狀態(tài)俊啼,Activity 處于 activity stack 棧頂肺缕,可以接受用戶輸入。
onPause()
“部分可見”授帕,表示用戶正在離開 Activity同木,可以繼續(xù)更新UI。
onStop()
Activity 對用戶已經(jīng)不可見豪墅。
onRestart()
恢復(fù) Acitivity 的狀態(tài)泉手。
onDestroy()
銷毀 Activity,釋放資源偶器。