详解 Android 的 Activity 组件——笔记

【连载】Android组件——Activity组件 Android组件(一)——Activity组件 控制Activity生命周期的函数: Activity周期的demo实现 运行工程无法正常显示 控制台打印信息如下: Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page. I/studio.deploy: 阅读详情

转载:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/

Activity 栈

Android 是通过一种 Activity 栈的方式来管理 Activity 的,一个 Activity 的实例的状态决定它在栈中的位置。处于前台的 Activity 总是在栈的顶端,当前台的 Activity 因为异常或其它原因被销毁时,处于栈第二层的 Activity 将被激活,上浮到栈顶。当新的 Activity 启动入栈时,原 Activity 会被压入到栈的第二层。一个 Activity 在栈中的位置变化反映了它在不同状态间的转换。Activity 的状态与它在栈中的位置关系如下图所示:

图 2. Activity 的状态与它在栈中的位置关系


如上所示,除了最顶层即处在 Active 状态的 Activity 外,其它的 Activity 都有可能在系统内存不足时被回收,一个 Activity 的实例越是处在栈的底层,它被系统回收的可能性越大。系统负责管理栈中 Activity 的实例,它根据 Activity 所处的状态来改变其在栈中的位置。

使用 SharedPreferences

SharedPreferences 使用 xml 格式为 Android 应用提供一种永久的数据存贮方式。对于一个 Android 应用,它存贮在文件系统的 /data/ data/your_app_package_name/shared_prefs/目录下,可以被处在同一个应用中的所有 Activity 访问。Android 提供了相关的 API 来处理这些数据而不需要程序员直接操作这些文件或者考虑数据同步问题。

// 写入 SharedPreferences 
 SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE); 
 Editor editor = preferences.edit(); 
 editor.putBoolean("boolean_key", true); 
 editor.putString("string_key", "string_value"); 
 editor.commit(); 
        
 // 读取 SharedPreferences 
 SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE); 
 preferences.getBoolean("boolean_key", false); 
 preferences.getString("string_key", "default_value"); 
Activity 的 Intent Filter

Intent Filter 描述了一个组件愿意接收什么样的 Intent 对象,Android 将其抽象为 android.content.IntentFilter 类。在 Android 的 AndroidManifest.xml 配置文件中可以通过 <intent-filter >节点为一个 Activity 指定其 Intent Filter,以便告诉系统该 Activity 可以响应什么类型的 Intent。

当程序员使用 startActivity(intent) 来启动另外一个 Activity 时,如果直接指定 intent 了对象的 Component 属性,那么 Activity Manager 将试图启动其 Component 属性指定的 Activity。否则 Android 将通过 Intent 的其它属性从安装在系统中的所有 Activity 中查找与之最匹配的一个启动,如果没有找到合适的 Activity,应用程序会得到一个系统抛出的异常。这个匹配的过程如下:

图 4. Activity 种 Intent Filter 的匹配过程

Action 匹配

Action 是一个用户定义的字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其 <intent-filter >节点指定一个 Action 列表用于标示 Activity 所能接受的“动作”,例如:

<intent-filter > 
 <action android:name="android.intent.action.MAIN" /> 
 <action android:name="com.zy.myaction" /> 
……
 </intent-filter> 
如果我们在启动一个 Activity 时使用这样的 Intent 对象:

Intent intent =new Intent(); 
intent.setAction("com.zy.myaction");

那么所有的 Action 列表中包含了“com.zy.myaction”的 Activity 都将会匹配成功。

Android 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量的方式定义在 android.content. Intent中,以“ACTION_”开头。我们可以在 Android 提供的文档中找到它们的详细说明。

URI 数据匹配

一个 Intent 可以通过 URI 携带外部数据给目标组件。在 <intent-filter >节点中,通过 <data/>节点匹配外部数据。

mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。如下:

<data android:mimeType="mimeType" android:scheme="scheme" 
 android:host="host" android:port="port" android:path="path"/> 
如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。

Category 类别匹配

<intent-filter >节点中可以为组件定义一个 Category 类别列表,当 Intent 中包含这个列表的所有项目时 Category 类别匹配才会成功


http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

关于

Tasks and Back Stack 更详细的API介绍

Android四大组件—Activity详解 一、Activity介绍 Activity是Android的四大组件之一,它提供屏幕,用户通过它与机器产生交互。 二、Activity的生命周期 onresume 与 onstart 的区别 onStart 用户可见,但还没有获得焦点,用户还不能进行操作。 onResume 界面可见,并获得焦点,用户可以进行操作了。 Activity A 启动 Activity B 时的操作打印 Activity_A onPause()...... Activity_B onCreate()........ 阅读详情

相关推荐

指标异常检测和诊断

贡献度,即用定量衡量的方式来说明:一个指标YYY的异动△Y△Y△Y,具体是由其中哪些成分XiX_iXi​带来了多少异动△Yi△Y_i△Yi​?

qq_43349542的博客 3167

android matrix 简书,Matrix的用法

优快云博客img cquwentaoandroid matrix 最全方法详解与进阶(完整篇)发表于2016/5/18 16:43:27 1385人阅读分类: android绘制1 概述这里我们会详细讲解matrix的各个方法,以及它的用法。matrix叫做矩阵,在前面讲解 ColorFilter 的文章中,我们讲解了ColorMatrix,他是一个4*5的矩阵。而这里,我们讲解的Matrix...

weixin_34238178的博客 365

告别卡顿!用LVGL+DMA刷新STM32F407的SPI屏幕,性能提升实战

本文详细介绍了如何通过LVGL+DMA技术优化STM32F407驱动SPI屏幕的性能,实现接近60FPS的流畅刷新。从硬件瓶颈分析到SPI与DMA的精细化配置,再到LVGL的双缓冲机制与局部刷新优化,提供了一套完整的性能提升方案。特别适合嵌入式GUI开发中面临卡顿问题的工程师参考。

weixin_42531588的博客 379

Android界面组件Activity解析

界面组件Activity解析 界面组件Activity与Web页面对比的相似之处: 运行模式:web是通过链接跳转,多页面时仅有一个页面对用户可见;Android是多任务系统,可同时运行多个任务,每个任务是一个界面组件; Web页面有一个URL对应,页面切换和数据传输需要通过服务器,Android也是通过类型信息、数据RUI、数据类型信息进行定位。界面切换和数据传输依赖于组件管理服务。 ...

hebeind100的博客 229

碳酸钙岩石酸蚀酸溶COMSOL建模:非均质对酸蚀通道的影响

多孔介质中的流动与化学反应耦合是石油工程和地下资源开发中的核心问题,酸液与岩石矿物的溶蚀过程直接关系到酸化增产效果。在碳酸盐岩储层中,盐酸与方解石的反应速率极快,酸液会优先沿高渗透区域推进,形成指状酸蚀通道,即wormhole。传统均质模型难以描述这种局部溶蚀行为,而数值模拟工具COMSOL通过耦合达西定律、稀物质传递与孔隙度演化方程,能够定量刻画酸蚀路径与渗透率的变化规律。工程实践中,模拟结果可用于预测酸液突破体积、优化注入排量,并为基质酸化方案设计提供依据。本文围绕碳酸钙岩石酸蚀酸溶COMSOL模型,探

weixin_29009401的博客 329

从零开始构建AURIX TC397开发环境:硬件选型与IDE配置全攻略

本文详细介绍了如何从零开始构建AURIX TC397开发环境,涵盖硬件选型、IDE配置及外设驱动开发等关键步骤。针对TriCore架构的高性能特性,提供了开发板选型建议、AURIX Development Studio(ADS)安装配置指南,以及GPIO和CAN FD驱动的实战代码示例,帮助开发者快速上手TC397系列微控制器的开发工作。

7up55的博客 205

Android基础笔记:(1)四大组件 Activity 详解【更新结束】

Activity是Android的四大组件之一。作用:显示界面,用户通过Activity实现交互操作,一个App一般由多个Activity组成。AndroidManifest.xml又被称为清单文件,它是整个程序的根目录,用于定义Activity,service,广播等组件。决定程序最先启动的Activity:

weixin_45995894的博客 3347

【Bluedroid】AVRCP 连接源码分析(一)

AVRCP连接源码分析流程是一个涉及多个步骤和协议交互的复杂过程。在源码中,需要仔细处理各种连接状态和协议交互,以确保AVRCP连接的稳定性和可靠性。同时,还需要根据具体的应用场景和需求,对AVRCP命令和响应进行定制化处理。

byte轻骑兵的技术小窝 3316

笔记38 | Android四大组件之Activity的四种LauncherMode详解

launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。 Activity一共有以下四种lau

项勇 | 一天不学点啥就浑身难受 429

无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程

当您遇到类似于"无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程"的错误消息时,请按照上述步骤来解决问题。当您尝试加载文件C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1时,可能会遇到类似于"无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程"的错误消息。请注意,更改执行策略可能会带来一些安全风险。

PixelInk的博客 1922

你一直忽略的神器:离你最近的超强语音输入法(微信语音输入全攻略,支持全局混用)

你一直忽略的语音输入工具🎤 ,其实就在身边!无需额外软件,即可实现全局语音转文字⚡ 支持中英文混输,还能与其他输入法混合使用,聊天、办公都能高效完成,让你的输入效率轻松翻倍🚀

XiaoqiangClub的博客 911

android学习笔记(一)四大组件activity详解

一、Activity详解二、Service详解三、Broadcast Receiver详解四、Content Provider详解外加一个重要组件 intent的详解。   一、Activity详解Activty的生命周期的也就是它所在进程的生命周期。    一个Activity的启动顺序:onCreate()——>onStart()——>onResume()当另一个Activity启动时

eric_hwp的专栏 273

NVIDIA Isaac GR00T N1 人形机器人强化学习入门教程(二)详细步骤

LeRobot 格式 1.1 加载数据集 要加载数据集,我们需要定义以下 3 项内容: 在数据中显示图像帧 我们还可以对 LeRobotSingleDataset 类中的数据进行一系列转换。下面展示了如何对数据进行转换。 现在看看应用转换后的数据有何不同。 例如,对状态和操作进行规范化和串联,对视频图像进行裁剪、调整大小和颜色抖动。 二、GR00T 推断 本教程介绍如何使用 GR00

2506_90492529的博客 3013

Android Activity详解

Android Activity详解 1.什么是Activity Activity是一个Android的应用组件,它提供屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成,一般会指定应用中的某个Activity为主活动,也就是说首次启动应用时给用户呈现的Ac...

fjnu_se的博客 13万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Android】安卓四大组件之活动(Activity) 详解:从基础到进阶

在安卓应用开发的世界里,Activity 作为安卓四大组件之一,是用户与应用进行交互的重要窗口,它承载着应用的界面展示与用户操作响应功能。无论是打开一款 APP 看到的主界面,还是点击按钮后弹出的新页面,都是 Activity 在发挥作用。本文将深入剖析 Activity,带你全面了解它的原理、使用方法及进阶技巧

m0_59734531的博客 3873

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android学习笔记 | 四大组件之Activity

Activity意为“活动”,是Android四大组件之一,使用最为频繁。在 Android 中,Activity是一个可以包含用户界面的应用组件,主要用于与用户进行交互。简单来说,一个 Activity 就是一个单独的屏幕,用户可以在上面进行操作,比如点击按钮、输入文字、滑动列表等。注:Android四大组件包括Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)、Content Provider(内容提供器)。Activity的关键特点特性说明。

m0_74093546的博客 1458

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

安卓四大组件之Activity

安卓四大组件之Activity

似霰的博客 1926

Android 四大组件之Activity详解

对Android的activity的一个系统性的归纳整理,里面详细介绍了activity的创建、生命周期、启动方式、基本状态、启动模式、常见的一些问题等。

li847250110的博客 5万+

Android四大组件——Activity(一)

创建好的Activity只是Kotlin中的一个类,如果要使用这个Activity,则必须在安卓的配置文件AndroidManifest.xml中设置,添加下述节点,这里声明了一个Activity,并且不允许外部应用调用它。需要注意的是,这种方式新建对应的类后,需要手动继承AppCompatActivity类,并且需要手动添加onCreate回调的实现,添加相应的布局文件。(4)Intent 启动:通过 Intent,可以启动其他 Activity,实现不同界面之间的切换和交互。

2301_79188932的博客 1565

Android四大组件基础学习之Activity

Android四大组件基础学习之Activity

Y3036359510的博客 1700

Android 四大组件——Activity

本文系统介绍了Android开发中Activity的核心知识。主要内容包括:Activity基础概念与生命周期(onCreate、onStart等7个回调方法);不同Activity类的区别(Activity、ActionBarActivity、AppCompatActivity);onCreate方法单双参数的区别;Activity间数据传递的注意事项;关闭所有Activity和退出应用的方法;屏幕旋转对Activity的影响及解决方案(保存状态、固定方向、ViewModel等);四种启动模式(stand

indeedes的博客 1600
上一篇: API Demo Snake代码分析三 程序架构的分析
下一篇: Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosi
GaoJava08
博客等级 码龄18年 201粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值