| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android程序设计-Activity -> 正文阅读 |
|
[移动开发]Android程序设计-Activity |
目录 startActivityForResult()和onActivityResult() Activity介绍??????? Activity是一种应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。本文主要介绍Activity的创建、跳转、数据交互及它的生命周期。 Context????????Context表示上下文,在 Android 中Context 分为Application Context 、Activity Context和Service Context三种。 ????? Context描述的是一个应用程序环境的信息,通过它可以获取应用程序的资源和类,也包括一些应用级别操作,例如启动Activity、发送广播和接受Intent信息等。 Intent??????? Intent中文翻译为“意图”,在Android Studio中,它可用于开启新的Activity,也可用于开启 Service服务和发送广播消息。另外Intent可以用于不同组件之间进行数据传递,是Android程序中各个组件进行交互的一种重要方式,其主要分为两种类型。 (1)显式Intent:如果Intent中明确包含了要启动的组件的完整类名(包名及类名),那么这个Intent就是显式的,使用显式Intent最典型的情形是在自己的App中启动一个组件,如:
??????? 通过启动按钮组件使活动由MainActivity跳转到SubActivity。 ?????? (2)隐式Intent:如果Intent没有包含要启动的组件的完整类名,那么这个Intent就是隐式的。虽然隐式的Intent没有指定要启动的组件的类名,但是一般情况下,隐式的Intent都要指定需要执行的action,一般隐式Intent用在想通过自己的App启动另一个App的组件的时候,让另一个App的组件接收并处理该Intent,如:
通过Intent启动本地的浏览器打开百度网页。 startActivityForResult()和onActivityResult()?????? ?在主界面(主Activity)通过startActivityForResult()方法跳转至多个不同的子Activity,当子Activity的代码执行完毕后,再次返回主页面,将子activity中得到的数据显示在主界面或将完成的数据交给主Activity处理。而处理这种带数据的意图跳转需要使用到Activity的onActivityResult()方法。 ??????? 在主Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法,可以得到传回的数据,其中requestCode用于与startActivityForResult中的requestCode值进行比较判断,以便确认返回的数据是从哪个Activity返回的;resultCode是由子Activity通过其setResult()方法返回,适用于多个activity都返回数据时,来标识到底是哪一个activity返回的值。Intent对象带有返回的数据可以通过“data.getXxxExtra( );”方法来获取指定数据类型的数据。下面用一段简单的代码来说明Activity的跳转数据处理框架:
Activity的生命周期??????? Activity的生命周期即活动从开始到结束所经历的各个状态;换言之,从一个状态到另一个状态的转变,从无到有再到无,这样一个过程中所经历的状态就叫做生命周期。 Activity本质上有四种状态: (1)运行:一个活动被移到了活动栈顶部或前台。 (2)暂停:如果一个活动被另一个非全屏的活动所覆盖(比如一个Dialog),那么该活动就失去了焦点,它将会暂停(但它仍然保留所有的状态和成员信息,并且仍然是依附在WindowsManager上),在系统内存极度缺乏时会将其杀死。 (3)停止:如果一个活动被另一个全屏活动完全覆盖,那么该活动处于停止状态(状态和成员信息会保留,但是Activity已经不再依附于WindowsManager了),在系统缺乏资源的时候会将它杀死(它会比暂停状态的活动先杀死)。 (4)重启:如果一个活动在处于停止或者暂停的状态下,系统内存缺乏时会将其结束(finish)或者杀死(kill)。在这种非正常情况下,系统在杀死或者结束之前会调用onSaveInstance()方法来保存信息;与此同时,当Activity被移动到前台时,重新启动该Activity并调用onRestoreInstance()方法加载所保留的信息,以保持原有的状态。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:06:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |