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.hqwc.cn/news/213642.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年亚太杯数学建模A题——深度学习苹果图像识别(思路+模型+代码+成品)

Image Recognition for Fruit-Picking Robots 水果采摘机器人的图像识别功能 问题 1&#xff1a;计数苹果 根据附件 1 中提供的可收获苹果的图像数据集&#xff0c;提取图像特征&#xff0c;建立数学模型&#xff0c;计算每幅图像中的苹果数量&#xff0c;并绘制附件 1 中所有…

【云备份】第三方库的认识与使用

文章目录 json库粗略认识详细认识writer 类reader类jsoncpp序列化实现jsoncpp反序列化实现 bundle文件压缩库简单认识bundle库实现文件压缩bundle库实现文件解压缩 httplib库Request类Response类Server类Client类 json库 粗略认识 json是一种数据交换格式&#xff0c;采用完全…

干货科普 | 不同类型的机器人及其在工作中的应用

原创 | 文 BFT机器人 制造商在其操作中使用各种类型的机器人&#xff0c;每种机器人都具有特定的能力和功能。我们将讨论制造业中使用的一些最常见类型的机器人&#xff0c;以及哪种机器人可能最适合您的应用。 01 关节机器人 关节式机器人是一种工业机器人&#xff0c;具有一…

2023 全球CSO网络安全峰会(中国站)圆满落幕,探讨新形势下的数据安全保护!

2023年11月23日 北京 IDC数据显示&#xff0c;到2027年&#xff0c;全球数据安全市场投资预测将接近212.2亿美元&#xff1b;其中&#xff0c;中国市场规模预期为32.4亿美元&#xff0c;五年复合增长率将达到24.4%&#xff0c;远高于全球平均水平。此外&#xff0c;网络安全领…

技术前沿探索:人工智能与大数据融合的未来

技术前沿探索&#xff1a;人工智能与大数据融合的未来 摘要&#xff1a;本博客将探讨人工智能与大数据融合领域的最新技术趋势、前沿研究方向以及挑战与机遇。通过介绍相关技术和案例&#xff0c;我们希望激发读者对这一领域的兴趣&#xff0c;并为其职业发展提供有益参考。 一…

YaRN方法:无需微调,高效扩展语言模型上下文窗口/蚂蚁集团与浙大发布原生安全框架v1.0,引领企业网络安全新时代 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; &#x1f525;资讯预览 YaRN方法&#xff1a;无需微调&#xff0c;高效扩展语言模型上下文窗口 蚂蚁…

Navicat 技术指引 | GaussDB服务器对象的创建/设计(编辑)

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

python-冒泡排序

冒泡排序 &#xff08;稳定&#xff09; O(n^2) (稳定&#xff1a;表示相等的数&#xff0c;相对位置会不会改变) 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它通过多次遍历待排序的元素&#xff0c;比较相邻两个元素的大小并交换它们&…

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

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

做外贸的你崩溃过吗

某日&#xff0c;孔先生问我&#xff0c; 前几天的那个单子怎么样了&#xff1f;看你一会找工厂拍照片&#xff0c;一会找办公室录制视频&#xff0c;半夜还在拿着手机和客户打电话&#xff0c;现在怎么也不提这个进展了&#xff0c;我回答道&#xff1a;黄了。 此时孔先生一股…

静态链表的结构设计与主要操作功能的实现(初始化,头插,尾插,判空,删除,输出,清空,销毁)

目录 一.静态链表的结构设计 二.静态链表的结构设计示意图 三.静态链表的实现 四.静态链表的总结 一.静态链表的结构设计 typedef struct SNode {int data;//数据int next;//后继指针(下标) }SNode,SLinkList[MAXSIZE]; 二.静态链表的结构设计示意图 0:有效数据链的头节点;…

【C++】:多态

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关多态的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…