参考于Android官方文档
Activity
Activity是android应用的关键组件,与桌面系统不同的是,android应用有多种启动入口。当一个应用调用另一个应用时,调用方法会调用另一个应用的activity,而不是整个app。这种情况下activity充当了与用户交互的入口。通常一个app有一个mainActivity作为app启动时的入口。虽然Activity是在协同工作,但每个Activity间只存在很少的依赖。要在app中使用activity,需要在androidmanifest.xml,也就是清单中声明关于Activity的信息,管理Activity的生命周期。
Androidmanifest.xml
声明一个activity,需要在androidmanifest中将该activity作为application元素的子元素。activity元素唯一必要的属性是android:name。(发布应用后,activity:name熟悉不应该更改)
<manifest ... >
<application ... >
<activity android:name=".ExampleActivity" />
...
</application ... >
...
</manifest >
Intent过滤器是一个消息传递对象,借助这项功能,可以通过显式请求与隐式请求来启动Activity。
使用Intent功能,需要在<activity>元素中声明<intent-filter>属性,该熟悉包含<action>元素,可选的<category>元素与<data>元素。通过这些元素可以指定Activity能够响应的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会发送数据,将<category> 元素声明为 DEFAULT 可使 Activity 能够接收启动请求。<data>元素指定此 Activity 可以发送的数据类型。以下代码段展示了如何调用上述 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);
实例化Intent对象后,使用sentAction()为Intent指定操作,ACTION_SEND意味使用发送数据的Action,setType设定数据类型,putExtra则是携带完成请求操作所需的附加信息的键值对。最后将该Intent传入启动Activity方法中。
可以使用清单的 <activity>标记来控制哪些应用可以启动某个 Activity。父 Activity 和子 Activity 必须在其清单中具有相同的权限,前者才能启动后者。如果您为父 Activity 声明了 <uses-permission>元素,则每个子 Activity 都必须具有匹配的 <uses-permission>元素。
Activity的生命周期
onCreat()
onStart()
onResume()
onPause()
onStop
onRestart()
onDestroy()
暂时就到这里