Activity简介(活动一)

2018-07-23  本文已影响56人  鹿小纯0831

Activity类是Android应用程序的重要组成部分,活动的启动和组合方式是平台应用程序模型的基本组成部分。

一、活动的概念

二、配置清单

为了使您的应用能够使用活动,您必须在清单中声明活动及其某些属性。

1、声明活动

要声明您的活动,请打开清单文件并添加<activity>元素作为<application>元素的子元素。 例如:

<manifest ... >
  <application ... >
      <activity android:name=".ExampleActivity" />
      ...
  </application ... >
  ...
</manifest >

此元素唯一必需的属性是android:name,它指定活动的类名。 您还可以添加定义活动特征的属性,例如标签,图标或UI主题。 有关这些和其他属性的更多信息,请参阅<activity>元素参考文档。

注意:发布应用程序后,不应更改活动名称。 如果这样做,您可能会破坏某些功能,例如应用程序快捷方式。 有关发布后要避免的更改的详细信息,请参阅无法更改的内容。

2、声明意图(Intent)过滤器(filter)

Intent过滤器是Android平台的一个非常强大的功能。 它们不仅可以基于显式请求而且还可以基于隐式请求来启动活动。 例如,显式请求可能会告诉系统“在Gmail应用中启动发送电子邮件活动”。相反,隐式请求会告诉系统“在任何可以执行此任务的活动中启动发送电子邮件屏幕”。 当系统UI询问用户在执行任务时使用哪个应用程序时,这是一个工作中的意图过滤器。
您可以通过在<activity>元素中声明<intent-filter>属性来利用此功能。 该元素的定义包括<action>元素,以及可选的<category>元素和<data>元素。 这些元素组合在一起以指定您的活动可以响应的意图类型。 例如,以下代码段显示了如何配置发送文本数据的活动,以及如何接收来自其他活动的请求:

<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>元素指定此活动发送数据。 将<category>元素声明为DEFAULT可使活动接收启动请求。 <data>元素指定此活动可以发送的数据类型。 以下代码段显示了如何调用上述活动:

// 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过滤器,您可以使用显式意图自行启动这些活动。 有关活动如何响应意图的更多信息,请参阅意图和意图过滤器。

3、声明权限

您可以使用清单的<activity>标记来控制哪些应用可以启动特定活动。 除非两个活动在其清单中具有相同的权限,否则父活动无法启动子活动。 如果为特定活动声明<uses-permission>元素,则调用活动必须具有匹配的<uses-permission>元素。
例如,如果您的应用想要使用名为SocialApp的假想应用在社交媒体上分享帖子,SocialApp本身必须定义调用它的应用必须具有的权限:

<manifest>
<activity android:name="...."
   android:permission=”com.google.socialapp.permission.SHARE_POST”
/>

然后,要允许调用SocialApp,您的应用必须与SocialApp清单中设置的权限相匹配:

manifest>
   <uses-permission android:name="com.google.socialapp.permission.SHARE_POST" />
</manifest>

有关权限和安全性的更多信息,请参阅安全性和权限。

三、管理活动生命周期

在其一生中,一项活动经历了许多状态。 您使用一系列回调来处理状态之间的转换。 以下部分介绍了这些回调。

上一篇 下一篇

猜你喜欢

热点阅读