Android开发从0开始(Activity篇)

Activity的生命周期

对应解释:

startActivity(new Intent(源页面.this,目标页面.class))    结束当前活动页面finish();

Activity的启动模式

  App先后打开两个活动,此时活动会放入栈内。

(Android:launchMode=standard)默认

(Android:launchMode=singleTop)栈顶复用(渠道多)

(Android:launchMode=singleTask)栈内复用(主界面)

(Android:launchMode=singleInstance)全局唯一模式。

动态设置模式

Intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)设置启动标识,几十存在待跳转活动实例,清除上方所有实例,重新创建实例,保证栈中只有该活动的唯一实例。

Intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)清空活动栈的所有实例。所以也要同时启动新任务栈   (Intent.FLAG_ACTIVITY_NEW_TASK)。场景例如登录页面。获取验证。

Intent各个组件之间数据传输

显示Intent:

①在Intent的构造函数中指定。

Intent intent= new Intent(FristActivity.this,second_layout.class);//创建指定目标明确的意图

②调用意图对象的setClass方法。

Intent intent =new Intent( ); //创建一个意图

Intent.setClass (this, ActNextActivity.class);//set设置意图跳转

③调用意图对象的setComponent方法。

Intent intent =new Intent( ); //创建一个意图

//创建包含目标活动在内的意图组件对象(可传类名,包名)

ComponentName componet = new ComponentName(this,ActNextActivity.class);

Intent.setCompent(component); //设置意图携带组件信息

隐士Intent:(没指定要跳转的活动目标,只给出一个动作字符串,系统自动匹配)

可通过setAction方法指定,或者构造函数Intent(STring action)常见系统动作。

示例:

Intent intent= new Intent();

//设置动作意图为准备拨号

intent.setAction(Intent.ACTION_DIAL);    

Uri uri= Uri.parse("tel"+phone);

intent.setData(uri);

startActivity(intent);

 其他隐intent使用:

向Activity发送数据:

向下一个activity传输数据

 Intent使用Bundle对象存放传递的数据信息。 Bundle对象读getExtras,写putExtras。

发                                        Bundle:是map数据结构     

 Intent intent = new Intent(this,Receiveactivity.class);

        Bundle bundle= new Bundle();

        bundle.putString("request_content",tv_send.getText().toString());

        intent.putExtras(bundle);

        startActivity(intent);

        setContentView(R.layout.activity_receiveactivity);

        tv_receive= findViewById(R.id.tv_receive);

        //从上面一个页面传来意图中获取快递包裹

        Bundle bundle= getIntent().getExtras();

        String request_content=bundle.getString("request_content");

        String desc= String.format("收到请求内容: %s",request_content);

        tv_receive.setText(desc);

向上一个activity返回数据

 下一个页面打包应答数据调用setResult方法返回数据包,上一个页面重写onActivityResult解析返回数据。

为activity补充附加信息

  ①利用资源文件配置字符串

    //从string.xml中获取名叫weather_str的值

    String value= getString(R.string.weather_str);

    tv_resource.setText(value);

②利用元数据传递配置信息

在AndroidManifest.xml中<meta-data android:name="weather" android:value="晴天"/>。

(适合在第三方SDk,时候整合别人的源数据时候在全局配置里使用)

方法:调用getPackageManager方法获得当前活动的信息对象

调用包管理器的getActivityInfo方法获得当前活动下信息对象

  活动信息对象的metaData是Bundle包裹类型,调用包裹对象的getString获得参数            ActivityInfo info = pm.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);

Bundle bundle = info.metaData;   //获取活动附加的元数据

  String weather =bundle.getString("weather");  //从bundle中获取.weather属性

③给页面注册快捷方式(长按app触发功能)

<?xml version="1.0" encoding="utf-8"?>

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">

  <shortcut

      android:shortcutId="first"

      android:enable="true"

      android:icon="@mipmap/ic_launcher"

      android:shortcutShortLabel="first"

      android:shortcutLongLable="启停活动">

      <intent

          android:action="android.intent.action.VIEW"

          android:targetClass="android.app.Activity"

          android:targetPackage="com.example.test_application"

          />

      <categories android:name="android.shortcut.conversation"/>

  </shortcut>

</shortcuts>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/184369.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全自动洗衣机什么牌子好?内衣洗衣机推荐

现在洗内衣内裤也是一件较麻烦的事情了&#xff0c;在清洗过程中还要用热水杀菌&#xff0c;还要确保洗衣液是否有冲洗干净&#xff0c;还要防止细菌的滋生等等&#xff0c;所以入手一款小型的烘洗全套的内衣洗衣机是非常有必要的&#xff0c;专门的内衣洗衣机可以最大程度减少…

实时语音克隆:5 秒内生成任意文本的语音 | 开源日报 No.84

CorentinJ/Real-Time-Voice-Cloning Stars: 43.3k License: NOASSERTION 这个开源项目是一个实时语音克隆工具&#xff0c;可以在5秒内复制一种声音&#xff0c;并生成任意文本的语音。 该项目的主要功能包括&#xff1a; 从几秒钟的录音中创建声纹模型根据给定文本使用参考…

聚类笔记/sklearn笔记:Affinity Propagation亲和力传播

1 算法原理 1.1 基本思想 将全部数据点都当作潜在的聚类中心(称之为 exemplar )然后数据点两两之间连线构成一个网络( 相似度矩阵 )再通过网络中各条边的消息( responsibility 和 availability )传递计算出各样本的聚类中心。 1.2 主要概念 Examplar聚类中心similarity S(i…

GitHub桌面版

GitHub桌面版 一、GitHub 桌面版二、clone 仓库三、更新仓库 一、GitHub 桌面版 二、clone 仓库 三、更新仓库

GDPU 数据结构 天码行空11

文章目录 数据结构实验十一 图的创建与存储一、实验目的二、实验内容三、【实验源代码】&#x1f37b; CPP版&#x1f37b; c 语言版&#x1f37b; java版 四、【实验结果】五、【实验总结】 数据结构实验十一 图的创建与存储 一、实验目的 1、 理解图的存储结构与基本操作&a…

mac电脑系统活动监控:iStat Menus 中文 for Mac

iStat Menus是一款Mac操作系统上的系统监控工具&#xff0c;它提供了实时的系统状态和性能数据&#xff0c;让用户可以方便地监控和管理自己的电脑。iStat Menus以菜单栏图标的形式显示各种系统指标&#xff0c;用户可以轻松访问和查看这些信息。 以下是iStat Menus软件的一些…

基于SSM安全生产培训管理平台设计与实现 毕业设计源码26918

赠送源码-毕业设计&#xff1a;SSM 安全生产培训平台https://www.bilibili.com/video/BV1gH4y1z7c6/?vd_source72970c26ba7734ebd1a34aa537ef5301 目录 摘 要 Abstract 第1章 前 言 1.1 研究背景 1.2 研究现状 1.3 系统开发目标 第2章 系统开发环境 2.1 JAVA简介…

VOC数据集转换为COCO数据集

VOC数据集格式 get_list.py import os import random import shutil# 设置随机种子 random.seed(1000)# 判断Annotations和JpegImages是否对应 train_precent=0.8 label_path= "../../Annotations" print(os.path.abspath(label_path)) save="../Main" pr…

服务号升级成订阅号容易弄吗

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;一、文章推送的篇数不同服务号在文章的推送篇数上是有所限制的&#xff08;每月推4次&#xff09;订阅号则每天可推送一篇文章。二、定义不同服务号主要是为关注用户提供服务使用的&#xff1b;订阅…

千兆光模块和万兆光模块的发展趋势

千兆光模块和万兆光模块是一种高速光电子器件&#xff0c;以其高速传输、长距离传输和高可靠性而广受关注。光模块是光学通讯系统中极为重要的组成部分之一。不同类型的光模块由于其不同的特性&#xff0c;可以适用于不同的应用场景。下面我们将着重介绍千兆光模块和万兆光模块…

数据结构与算法之美学习笔记:25 | 红黑树(上):为什么工程中都用红黑树这种二叉树?

目录 前言什么是“平衡二叉查找树”&#xff1f;如何定义一棵“红黑树”&#xff1f;为什么说红黑树是“近似平衡”的&#xff1f;解答开篇 前言 本节课程思维导图&#xff1a; 二叉查找树是最常用的一种二叉树&#xff0c;它支持快速插入、删除、查找操作&#xff0c;各个操作…

了解冶金行业MES系统的重要性与优势

冶金行业生产工艺极为复杂&#xff0c;冶金行业生产的产品种类多而繁复&#xff0c;并且每种企业生产的产品差异性极大&#xff0c;加上该行业生产需要各种大型生产设备&#xff0c;导致其工艺流程繁琐复杂&#xff0c;也因此在其生产过程中存在许多不安全的因素&#xff0c;若…

uniapp打包的ipa上架到appstore的傻瓜式教程

​ 转载&#xff1a;uniapp打包的ipa上架到appstore的傻瓜式教程 uniapp打包 在HBuilder X编辑器中打开需要打包的项目&#xff0c;然后点击上面菜单栏中 发行 > 原生App-云打包&#xff0c;对以下弹出的弹窗进行内容填写 ​ 填写完成以后&#xff0c;点击打包操作 ​ ​ …

rk3588配置uac功能,android13使能uac及adb的复合设备

最近&#xff0c;因新增需求需要在现有产品上增加UAC的功能&#xff0c;查阅并学习相关知识后&#xff0c;在rk3588 SOC硬件平台搭载android13系统平台上成功配置了uac及uac&adb的复合设备。基于开源共享精神希望给大家提供些参考。 1.技术可行性预研 &#xff08;1&#…

什么是 TLS/SSL 握手

TLS/SSL 握手是一个加密过程&#xff0c;每当客户端&#xff08;如浏览器&#xff09;与服务器建立连接时&#xff0c;都会在后台进行&#xff0c;此握手协议有助于客户端和服务器之间的安全连接&#xff0c;从而促进隐私、数据完整性和机密性。 TLS/SSL 握手何时发生 每当客…

Android笔记(十四):JetPack Compose中附带效应(一)

在Android应用中可以通过定义可组合函数来搭建应用界面。应用界面的更新往往是与可组合函数内部定义的状态值相关联的。当界面的状态值发生变更&#xff0c;会导致应用界面进行更新。在Android笔记&#xff08;九&#xff09;&#xff1a;Compose组件的状态&#xff0c;对Compo…

数据库实验五 数据库设计

数据库实验五 数据库设计 一、实验目的二、实验内容三、实验内容四、验证性实验五、设计性实验 一、实验目的 1.了解E-R图构成要素以及各要素图元。 2.掌握概念模型E-R图的绘制方法。 3.掌握概念模型向逻辑模型的转换原则和步骤。 4.运用sql编程实现 二、实验内容 1.选取一个…

TCP 重传、滑动窗口、流量控制、拥塞控制的剖析

TCP 是一个可靠传输的协议&#xff0c;那它是如何保证可靠的呢&#xff1f; 为了实现可靠性传输&#xff0c;需要考虑很多事情&#xff0c;例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题&#xff0c;也就无从谈起可靠传输。 那么&#xff0c;TCP 是…

使用骨传导耳机会伤耳朵吗?一文读懂骨传导耳机有哪些优点

首先说明&#xff0c;如果是正确的使用骨传导耳机是不会伤耳朵。 一、骨传导耳机的传声原理是什么&#xff1f; 声音的传播需要介质&#xff0c;传统的耳机是通过空气来进行传播&#xff0c;也被称为“空气传导耳机”&#xff0c;而骨传导耳机最大的特别之处就在于&#xff0…

linux安装zsh、oh-my-zsh及常用插件

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com&#xff0c;github地址为https://github.com/xjintong。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家访问。 一、安装zsh 这个不用多说了&#xff0…