Android核心主题——Activity简介

Android核心主题——Activity简介,第1张

概述1.简介Activity类是Android应用的关键组件,而Activity的启动和组合方式则是该平台应用模型的基本组成部分。在编程范式中,应用是通过main()方法启动的,而Android系统与此不同,它会调用与其生命周期特定阶段相对应的特定回调方法来启动Activity实例中的代码。概念: 1.简介

  Activity类是AndroID应用的关键组件,而Activity的启动和组合方式则是该平台应用模型的基本组成部分。

  在编程范式中,应用是通过 main() 方法启动的,而 AndroID 系统与此不同,它会调用与其生命周期特定阶段相对应的特定回调方法来启动 Activity 实例中的代码。

概念:

  移动应用体验与桌面体验的不同之处在于,用户与应用的互动并不总是在同一位置开始,而是经常以不确定的方式开始。例如,如果您从主屏幕打开电子邮件应用,可能会看到电子邮件列表,如果您通过社交媒体应用启动电子邮件应用,则可能会直接进入电子邮件应用的邮件撰写界面。

  Activity 类的目的就是促进这种范式的实现。当一个应用调用另一个应用时,调用方应用会调用另一个应用中的 Activity,而不是整个应用。通过这种方式,Activity 充当了应用与用户互动的入口点。

  可以将 Activity 实现为 Activity 类的子类。

  Activity 提供窗口供应用在其中绘制界面。此窗口通常会填满屏幕,但也可能比屏幕小,并浮动在其他窗口上面。通常,一个 Activity 实现应用中的一个屏幕。例如,应用中的一个 Activity 实现“偏好设置”屏幕,而另一个 Activity 实现“选择照片”屏幕。

  大多数应用包含多个屏幕,这意味着它们包含多个 Activity。通常,应用中的一个 Activity 会被指定为主 Activity,这是用户启动应用时出现的第一个屏幕。然后,每个 Activity 可以启动另一个 Activity,以执行不同的 *** 作。

  虽然应用中的各个 Activity 协同工作形成统一的用户体验,但每个 Activity 与其他 Activity 之间只存在松散的关联,应用内不同 Activity 之间的依赖关系通常很小。事实上,Activity 经常会启动属于其他应用的 Activity。例如,浏览器应用可能会启动社交媒体应用的“分享”Activity。

  要在应用中使用 Activity,您必须在应用的清单中注册关于 Activity 的信息,并且必须适当地管理 Activity 的生命周期。

 

2.代码应用(1)声明Activity:

  在AndroIDManiFest.xml中的application标签添加Activity标签(一个Activity对应一个<activity>标签):

        <activity androID:name=".ThirdActivity"></activity>

 

androID:name这个属性是必须的,这个属性用于指定Activity的类名称。也可以添加用于自定义标签、图标或者界面主题等Activity特征的属性

注意:发布应用后,就不应再更改 Activity 名称,否则可能会破坏某些功能

<activity>元素参考文档

(2)声明intent过滤器:

  intent过滤器 是AndroID平台一项非常强大的功能。借助这项功能,不但可以根据显式请求启动 Activity,还可以根据隐式请求启动 Activity。

  例如,显式请求可能会告诉系统“在 Gmail 应用中启动‘发送电子邮件’Activity”,而隐式请求可能会告诉系统“在任何能够完成此工作的 Activity 中启动‘发送电子邮件’屏幕”。当系统界面询问用户使用哪个应用来执行任务时,这就是 intent 过滤器在起作用。

  要使用这个功能,需要在<activity>元素中声明<intent-filter>属性。这个元素的定义包括<action>元素,以及可选的<category>元素和/或<data>元素。这些元素组合在一起,可以指定Activity能够响应的intent类型。

  以下代码展示了如何配置一个发送文本数据并接受其他Activity的文本数据发送请求的Activity:

    <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);    

 

  如果打算构建一个独立的应用,不允许其他应用激活其Activity,则不需要任何其他intent过滤器。

 

 3.声明权限

  你可以使用清单的<activity>标记来控制哪些应用可以启动某个Activity。父Activity和子Activity必须在其清单中具有相同的权限,前者才能启动后者。如果您为父 Activity 声明了 <uses-permission> 元素,则每个子 Activity 都必须具有匹配的 <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>    

 

4.Activity生命周期

 

总结

以上是内存溢出为你收集整理的Android核心主题——Activity简介全部内容,希望文章能够帮你解决Android核心主题——Activity简介所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存