Android Activity 基础接口知识和常见问题

Activity 知识点及问题点

  • 接口
    • onMultiWindowModeChanged
    • onConfigurationChanged
  • 常见问题
    • Android解决点击桌面图标,就重新启动应用程序问题

接口

onMultiWindowModeChanged

  1. 定义

    • onMultiWindowModeChanged是Android中Activity类的一个回调方法。它会在活动(Activity)的多窗口模式发生改变时被调用。在Android 7.0(API级别24)及以上版本中,用户可以将应用程序置于多窗口模式,例如分屏模式或者画中画模式,当活动进入或退出这种多窗口模式时,onMultiWindowModeChanged方法就会被触发。
  2. 方法签名及参数含义

    • 方法签名为public void onMultiWindowModeChanged(boolean isInMultiWindowMode)。其中isInMultiWindowMode参数表示活动当前是否处于多窗口模式。如果isInMultiWindowModetrue,则表示活动刚刚进入多窗口模式;如果为false,则表示活动刚刚退出多窗口模式。
  3. 一般情况不需要特殊配置

    • 通常情况下,onMultiWindowModeChanged方法的触发不需要在AndroidManifest.xml文件中进行特殊配置来使它生效。只要你的应用运行在支持多窗口模式的Android设备(API级别24及以上)上,并且活动(Activity)进入或退出多窗口模式,这个方法就会被自动调用。
  4. 相关属性说明

    • 不过,在AndroidManifest.xml中有一些与多窗口模式相关的属性可以用于控制活动在多窗口环境下的行为。
    • android:resizeableActivity属性
      • 这个属性用于指定活动是否可以在多窗口模式下调整大小。其默认值根据应用的targetSdkVersion有所不同。如果targetSdkVersion大于等于24,默认值为true,这意味着活动默认可以被调整大小并且onMultiWindowModeChanged方法能够正常响应大小调整导致的模式变化;如果targetSdkVersion小于24,默认值为false,此时活动在多窗口模式下不会自动调整大小,并且可能影响onMultiWindowModeChanged方法的触发逻辑(因为活动可能不会正确进入多窗口模式下的调整大小状态)。
      • 示例:
<activityandroid:name=".MainActivity"android:resizeableActivity="true">
</activity>
  • android:supportsPictureInPicture属性
    • 当你希望活动支持画中画(Picture - in - Picture)这种特殊的多窗口模式时,可以设置这个属性为true。画中画模式是一种特殊的多窗口模式,主要用于视频播放等场景,使得视频可以在一个小窗口中继续播放,用户可以同时操作其他应用。如果你的活动支持画中画模式,当进入或退出画中画模式时,onMultiWindowModeChanged方法也会被触发。
    • 示例:
<activityandroid:name=".VideoPlayerActivity"android:supportsPictureInPicture="true">
</activity>
  1. 使用场景
    • 布局调整

      • 当活动进入多窗口模式时,可能需要重新调整布局。例如,在单窗口模式下,一个新闻阅读应用的文章内容区域可能占据了大部分屏幕空间,而相关的评论区域只占一小部分。当进入多窗口模式后,可以缩小文章内容区域,使评论区域也能更合理地显示,为用户提供更好的多任务体验。
    • 资源管理优化

      • 在多窗口模式下,应用的资源使用方式可能需要改变。比如,视频播放应用在单窗口模式下可以以较高的分辨率和帧率播放视频,以提供更好的视觉体验。但在多窗口模式下,为了节省系统资源并保证应用的流畅性,可以降低视频的分辨率或帧率。
    • 数据更新与同步

      • 对于一些需要实时更新数据的应用,如股票交易应用。在单窗口模式下,可能每秒更新一次数据。当进入多窗口模式后,为了避免过多的资源占用和可能的性能问题,可以适当降低数据更新频率。

onConfigurationChanged

https://yoshin.blog.csdn.net/article/details/143673878?fromshare=blogdetail&sharetype=blogdetail&sharerId=143673878&sharerefer=PC&sharesource=weixin_35691921&sharefrom=from_link

常见问题

Android解决点击桌面图标,就重新启动应用程序问题

场景:
按HOME键隐藏程序,但点击桌面图标,重新进入程序后,发现界面跟刚安装进入时是一样的,相当于程序重新初始化加载了。举个明显的例子:比如我的应用是定时器,有倒计时功能,我第一次打开程序时,已经启动了倒计时,当我按HOME键隐藏程序,让程序进入后台,之后我从桌面点击图标进入,发现倒计时重新开始了,这很明显是个bug。

原因分析:
原因很可能是intent携带的信息不一样导致的

原文链接:Android解决点击桌面图标,就重新启动应用程序问题
https://blog.csdn.net/qq15577969/article/details/107141504

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//这是为了应用程序安装完后直接打开,按home键退出后,再次打开程序出现的BUGif ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {//结束你的activityreturn;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

STL——vector(1)

博客ID&#xff1a;LanFuRenC系列专栏&#xff1a;C语言重点部分 C语言注意点 C基础 Linux 数据结构 C注意点 今日好题 声明等级&#xff1a;黑色->蓝色->红色 欢迎新粉加入&#xff0c;会一直努力提供更优质的编程博客&#xff0c;希望大家三连支持一下啦 目录 尾…

typecho博客主题美化总结篇—php单文件相册管理

看过我前面两期博客的都知道&#xff0c;最近lz在专心建设自己的博客。因为是基于typecho,用的朴素简洁的博客主题&#xff0c;就注定了各个模块都需要自己亲力亲为的去设计&#xff0c;开发。不过这种经由自己手从无到有&#xff0c;从朴素空白到唯美充实的过程确实也很值得期…

每日一练:【动态规划算法】斐波那契数列模型之

1. 第 N 个泰波那契数&#xff08;easy&#xff09; 1. 题目链接&#xff1a;1137. 第 N 个泰波那契数 2. 题目描述 3.题目分析 这题我们要求第n个泰波那契Tn的值&#xff0c;很明显的使用动态规划算法。 4.动态规划算法流程 1. 状态表示&#xff1a; 根据题目的要求及公…

SQL DQL查询操作

1.基本查询 select name,employee.workno,employee.age from employee;select employee.idcard as 身份证号 from employee;select employee.entrydate from employee; select distinct employee.entrydate from employee; 2.条件查询 where select * from employee where i…

Mysql 版本升级-二进制安装方式

8.0.20 -8.0.40 总体参考见下 fw_error_www 前置环境说明 glibc 版本&#xff0c;安装mysql二进制文件时需要匹配&#xff0c;安装的版本只能比系统的低 ldd --version# 查看库的位置 ldd which top | grep "libc.so"逻辑备份 卸载旧版本相关数据&#xff08;注…

【CSS3】Flex弹性布局

文章目录 前言一、基本概念1.容器和项目&#xff1a;2.主轴和交叉轴&#xff1a; 二、容器属性1.flex-direction&#xff1a;决定主轴的方向&#xff0c;即x轴还是y轴2.flex-wrap&#xff1a;定义项目的换行方式3.flex-flow&#xff1a;flex-direction属性和flex-wrap属性的简写…

vscode集成的终端里backspace键无法退格

解决办法&#xff1a; 搜索“backspace”&#xff0c;然后修改backspce对应的项的快捷键为其它按键组合&#xff0c;如下&#xff1a;

网络抓包工具tcpdump 在海思平台上的编译使用

目录 2&#xff1a;下载源码 1&#xff1a;下载 2&#xff1a;编译 2.1&#xff1a;下载 2.2&#xff1a;编译libpcap 2.3&#xff1a;编译tcpdump 3&#xff1a;使用验证 音视频开发中经常用到抓包工具分析数据&#xff0c;这里是海思平台下的tcpdump工具编译使用流程&a…

详细描述一下Elasticsearch索引文档的过程?

大家好&#xff0c;我是锋哥。今天分享关于【详细描述一下Elasticsearch索引文档的过程&#xff1f;】面试题。希望对大家有帮助&#xff1b; 详细描述一下Elasticsearch索引文档的过程&#xff1f; Elasticsearch的索引文档过程是其核心功能之一&#xff0c;涉及将数据存储到…

Android:任意层级树形控件(有效果图和Demo示例)

先上效果图&#xff1a; 1.创建treeview文件夹 2.treeview -> adapter -> SimpleTreeAdapter.java import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ListView; i…

Jmeter中的断言(四)

13--XPath断言 功能特点 数据验证&#xff1a;验证 XML 响应数据是否包含或不包含特定的字段或值。支持 XPath 表达式&#xff1a;使用 XPath 表达式定位和验证 XML 数据中的字段。灵活配置&#xff1a;可以设置多个断言条件&#xff0c;满足复杂的测试需求。 配置步骤 添加…

3243.新增道路查询的最短距离

给你一个整数 n 和一个二维整数数组 queries。 有 n 个城市&#xff0c;编号从 0 到 n - 1。初始时&#xff0c;每个城市 i 都有一条单向道路通往城市 i 1&#xff08; 0 < i < n - 1&#xff09;。 queries[i] [ui, vi] 表示新建一条从城市 ui 到城市 vi 的单向道路…

MySQL - 表的约束

文章目录 1、空约束2.默认值3.列描述4.zerofill5.主键6.自增长7.唯一键8.外键 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻辑角度保证数据的正确性。比如有一个字段是…

VirtualBox安装虚拟机Windows server 2019系统只显示cmd命令窗口

原因&#xff1a; 没注意选用了核心安装选项&#xff0c;此选项不安装图形界面 解决&#xff1a; 方式一&#xff1a;重装虚拟机&#xff0c;选用有图形界面的版本 方式二&#xff1a;在cmd窗口中安装图形界面 Dism /online /enable-feature /all /featurename:Server-Gui-Mgm…

基于卷积神经网络的皮肤病识别系统(pytorch框架,python源码,GUI界面,前端界面)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示&#xff1a; 皮肤病识别系统 vgg16 resnet50 卷积神经网络 GUI界面 前端界面&#xff08;pytorch框架 python源码&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的皮肤病识…

MixVpr重定位实战----onnx以及Tensorrt适配

0. 简介 对于深度学习而言&#xff0c;通过模型加速来嵌入进C是非常有意义的&#xff0c;因为本身训练出来的pt文件其实效率比较低下&#xff0c;在讲完BEVDET和FastBEV后&#xff0c;这里我们将展开实战&#xff0c;从pt到onnx再到tensorrt&#xff0c;以MixVpr作为例子&…

Java基于微信小程序的校园跑腿平台(V2.0)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Spring Boot图书馆管理系统:疫情中的管理利器

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了疫情下图书馆管理系统的开发全过程。通过分析疫情下图书馆管理系统管理的不足&#xff0c;创建了一个计算机管理疫情下图书馆管理系统的方案。文章介绍了疫情下图…

【CUDA】Branch Divergence and Unrolling Loop

目录 一、避免分支发散 1.1 并行规约问题 1.2 并行规约中的发散 二、UNrolling Loops 一、避免分支发散 控制流有时依赖于 thread 索引。同一个warp中&#xff0c;一个条件分支可能导致性能很差。通过重新组织数据获取模式可以减少或避免 warp divergence。具体问题查看下…

WIN系统解决小喇叭红色叉号的办法

WIN系统解决小喇叭红色叉号的办法 WIN系统提示无音频设备&#xff0c;无法播放声音&#xff0c;重装驱动无法解决 写在前面 前段时间搞了套6750GRE&#xff0c;用了两三个月&#xff0c;老是掉驱动&#xff0c;后面折腾了一下子&#xff0c;终于是不掉了。突然&#xff0c;某…