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

devtools/2024/11/24 6:37:03/

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.ppmy.cn/devtools/136481.html

相关文章

挂壁式空气净化器什么牌子净化好?测评高热度品牌排行

近年来&#xff0c;挂壁式空气净化器日益成为消费者关注的焦点。随着市场需求的激增&#xff0c;其品牌和型号亦愈发丰富。作为家电测评领域的专业人士&#xff0c;我已评测了众多挂壁式空气净化器&#xff0c;发现部分产品存在质量问题&#xff0c;净化效果不佳&#xff0c;尤…

第二十九章 TCP 客户端 服务器通信 - 记录的拼接

文章目录 第二十九章 TCP 客户端 服务器通信 - 记录的拼接记录的拼接多路复用 TCP设备正在关闭连接使用CLOSE命令断开连接 第二十九章 TCP 客户端 服务器通信 - 记录的拼接 记录的拼接 在某些情况下&#xff0c;TCP会将不同的记录连接在一起形成单个记录。如果客户端或服务器…

HTML5实现剪刀石头布小游戏(附源码)

文章目录 1.设计来源1.1 主界面1.2 皮肤风格1.2 游戏中界面 2.效果和源码源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/143798520 HTM…

Linux安装RabbitMQ

安装步骤 rabbitmq使用erlang开发&#xff0c;依赖于erlang&#xff0c;所以需要先下载erlang&#xff0c;且版本要兼容&#xff1a; 可在官网查看erlang与rabbitmq的版本对应关系 https://www.rabbitmq.com/docs/which-erlangCentOs7安装运行 下载 下载地址 https://www.rab…

vue el-table表格点击某行触发事件操作栏点击和row-click冲突问题

文章为本新手菜鸡的问题记录&#xff0c;如有错误和不足还请大佬指正 文章目录 前言一、点击el-table表格某行&#xff0c;触发事件二、解决el-table的操作栏点击和row-click冲突问题1.问题&#xff1a;2.解决方法 前言 文章主要解决两个问题&#xff1a; 1、点击el-table表格…

【SQL Server】华中农业大学空间数据库实验报告 实验四 完整性约束

1.实验目的 通过理论课的学习与实验指导书的帮助&#xff0c;在实验课操作的基础上进一步理解数据库中&#xff0c;实现数据完整性的概念及实施数据完整性的重要性&#xff0c;同时掌握数据完整性的分类&#xff0c;体会数据完整性约束的作用&#xff0c;加深对数据完整性及其…

Selenium 使用指南:从基础到反爬虫的实践

掌握Selenium 文章目录 掌握Selenium复杂动态网页解决方案Selenium简介Selenium chromedriver 安装打开自动化浏览器初始化机器人访问url——browser.get(url)全屏打开网页——browser.maximize_window()关闭窗口——browser.close()指定selenium参数需要的库网页元素定位获取…

【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带”

【通俗理解】ELBO&#xff08;证据下界&#xff09;——机器学习中的“情感纽带” 关键词提炼 #ELBO #证据下界 #变分推断 #机器学习 #潜变量模型 #KL散度 #期望 #对数似然 第一节&#xff1a;ELBO的类比与核心概念【尽可能通俗】 ELBO&#xff0c;即证据下界&#xff0c;在…