一个 APP 通常由多个 Activity 组成。Activity 之间是一种松散的组成关系,它不仅可以在自己的 APP 中使用,也可以被其他 APP 单独调用。
如果要调用其他 APP 中的 Activity 需要在清单文件 manifest 中声明。
Declare activities
<manifest ... >
<application ... >
<activity android:name=".ExampleActivity" />
...
</application ... >
...
</manifest >
Activity 有两种启动方式: 隐式 和显式。显式通过明确的类来启动,隐式通过 intent-filter 调用。
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 要调用另一个 Activity,他们必须拥有相同的权限。
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() 设置布局视图。
onStart()
Activity 对用户已经可见。
onResume()
与用户交互前的状态,Activity 处于 activity stack 栈顶,可以接受用户输入。
onPause()
“部分可见”,表示用户正在离开 Activity,可以继续更新UI。
onStop()
Activity 对用户已经不可见。
onRestart()
恢复 Acitivity 的状态。
onDestroy()
销毁 Activity,释放资源。