Android Activity 基础接口知识和常见问题
Activity 知识点及问题点
- 接口
- onMultiWindowModeChanged
- onConfigurationChanged
- 常见问题
- Android解决点击桌面图标,就重新启动应用程序问题
接口
onMultiWindowModeChanged
-
定义
onMultiWindowModeChanged
是Android中Activity
类的一个回调方法。它会在活动(Activity)的多窗口模式发生改变时被调用。在Android 7.0(API级别24)及以上版本中,用户可以将应用程序置于多窗口模式,例如分屏模式或者画中画模式,当活动进入或退出这种多窗口模式时,onMultiWindowModeChanged
方法就会被触发。
-
方法签名及参数含义
- 方法签名为
public void onMultiWindowModeChanged(boolean isInMultiWindowMode)
。其中isInMultiWindowMode
参数表示活动当前是否处于多窗口模式。如果isInMultiWindowMode
为true
,则表示活动刚刚进入多窗口模式;如果为false
,则表示活动刚刚退出多窗口模式。
- 方法签名为
-
一般情况不需要特殊配置
- 通常情况下,
onMultiWindowModeChanged
方法的触发不需要在AndroidManifest.xml
文件中进行特殊配置来使它生效。只要你的应用运行在支持多窗口模式的Android设备(API级别24及以上)上,并且活动(Activity)进入或退出多窗口模式,这个方法就会被自动调用。
- 通常情况下,
-
相关属性说明
- 不过,在
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
方法也会被触发。 - 示例:
- 当你希望活动支持画中画(Picture - in - Picture)这种特殊的多窗口模式时,可以设置这个属性为
<activityandroid:name=".VideoPlayerActivity"android:supportsPictureInPicture="true">
</activity>
- 使用场景
-
布局调整
- 当活动进入多窗口模式时,可能需要重新调整布局。例如,在单窗口模式下,一个新闻阅读应用的文章内容区域可能占据了大部分屏幕空间,而相关的评论区域只占一小部分。当进入多窗口模式后,可以缩小文章内容区域,使评论区域也能更合理地显示,为用户提供更好的多任务体验。
-
资源管理优化
- 在多窗口模式下,应用的资源使用方式可能需要改变。比如,视频播放应用在单窗口模式下可以以较高的分辨率和帧率播放视频,以提供更好的视觉体验。但在多窗口模式下,为了节省系统资源并保证应用的流畅性,可以降低视频的分辨率或帧率。
-
数据更新与同步
- 对于一些需要实时更新数据的应用,如股票交易应用。在单窗口模式下,可能每秒更新一次数据。当进入多窗口模式后,为了避免过多的资源占用和可能的性能问题,可以适当降低数据更新频率。
-
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;}
}
相关文章:
Android Activity 基础接口知识和常见问题
Activity 知识点及问题点 接口onMultiWindowModeChangedonConfigurationChanged 常见问题Android解决点击桌面图标,就重新启动应用程序问题 接口 onMultiWindowModeChanged 定义 onMultiWindowModeChanged是Android中Activity类的一个回调方法。它会在活动…...
利用python 检测当前目录下的所有PDF 并转化为png 格式
以下是一个完整的 Python 脚本,用于检测当前目录下的所有 PDF 文件并将每一页转换为 PNG 格式: import os from pdf2image import convert_from_path# 设置输出图像的 DPI(分辨率) DPI 300# 获取当前目录 current_directory os…...
解决 Spring Boot 中 `Ambiguous mapping. Cannot map ‘xxxController‘ method` 错误
前言 在使用 Spring Boot 开发 Web 应用时,经常会遇到各种各样的错误。其中一种常见的错误是 Ambiguous mapping. Cannot map ‘testController‘ method。本文将详细介绍这个错误的原因及解决方法,帮助开发者快速定位并解决问题。 错误解释 这个错误…...
C++ 函数返回值优化
本文中部分内容来自下面的文章,还有一部分来自智谱清言 C 返回值优化_c 局部变量返回优化-CSDN博客 elision:省略 copy elision:拷贝省略 RVO (Return Value Optimization):返回值优化 ------ 我最近也遇到了上面博文中说到的问题&…...
c++源码阅读__ThreadPool__正文阅读
一. 简介 本章我们开始阅读c git 高星开源项目ThreadPool, 这是一个纯c的线程池项目, 并且代码量极小, 非常适合新手阅读 git地址: progschj / ThreadPool 二. 前提知识 为了面对不同读者对c掌握情况不同的情况, 这里我会将基本上稍微值得一说的前提知识点, 全部专门写成一篇…...
关于ES的查询
查询结果那么多字段都是什么? 为什么会提到这个问题呢,因为默认ES查询的结果会有很多信息,我们可能并不希望要那么多数据,所以你需要了解这些字段都表示什么,并正确的返回和使用它们。 took– Elasticsearch 运行查询…...
数据结构初识
目录 1.初识 2.时间复杂度 常见时间复杂度举例: 3.空间复杂度 4.包装类&简单认识泛型 4.1装箱和拆箱 5.泛型 6.泛型的上界 7.泛型方法 8.List接口 1.初识 1.多画图 2.多思考 3.多写代码 4.多做题 牛客网-题库/在线编程/剑指offer 算法篇:…...
保存数据到Oracle时报错ORA-17004: 列类型无效: 1111
1、问题描述: 关键信息:Mybatis;Oracle (1)保存信息到Oracle时报错: Caused by: org.apache.ibatis.type.TypeException: Error setting null for parameter #10 with JdbcType OTHER . Try setting a dif…...
Excel——宏教程(1)
Microsoft excel是一款功能非常强大的电子表格软件。它可以轻松地完成数据的各类数学运算,并用各种二维或三维图形形象地表示出来,从而大大简化了数据的处理工作。但若仅利用excel的常用功能来处理较复杂的数据,可能仍需进行大量的人工操作。…...
论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)
笔记整理:和东顺,天津大学硕士,研究方向为软件缺陷分析 论文链接:https://aclanthology.org/2024.acl-long.558/ 发表会议:ACL 2024 1. 动机 虽然大语言模型(LLMs)已经在自然语言理解和生成任务…...
第6章:TDengine 标签索引和删除数据
TDengine 标签索引和删除数据 目标 掌握标签索引的创建、删除掌握超表、子表创建以及数据删除删除数据 删除数据是 TDengine 提供的根据指定时间段删除指定表或超级表中数据记录的功能,方便用户清理由于设备故障等原因产生的异常数据。 注意:删除数据并不会立即释放该表所…...
【微软:多模态基础模型】(5)多模态大模型:通过LLM训练
欢迎关注[【youcans的AGI学习笔记】](https://blog.csdn.net/youcans/category_12244543.html)原创作品 【微软:多模态基础模型】(1)从专家到通用助手 【微软:多模态基础模型】(2)视觉理解 【微…...
海外带云仓多语言商城源码,多语言多商家云仓一键代发商城
新增海外仓,云仓国际供应链系统,商家可登陆云仓进行批量发货 商城修复了一些bug以及增加了订单数字提示,优化加载速度,二开了一些细微功能 基于 PHP Laravel 框架开发的一款 Web 商城系统。 1.前端多国语言自由切换,…...
android:taskAffinity 对Activity退出时跳转的影响
android:taskAffinity 对Activity跳转的影响 概述taskAffinity 的工作机制taskAffinity对 Activity 跳转的影响一个实际的开发问题总结参考 概述 在 Android 开发中,任务栈(Task)是一个核心概念。它决定了应用程序的 Activity 如何相互交互以…...
Apache Dolphinscheduler数据质量源码分析
Apache DolphinScheduler 是一个分布式、易扩展的可视化数据工作流任务调度系统,广泛应用于数据调度和处理领域。 在大规模数据工程项目中,数据质量的管理至关重要,而 DolphinScheduler 也提供了数据质量检查的计算能力。本文将对 Apache Do…...
solana链上智能合约开发案例一则
环境搭建 安装Solana CLI:Solana CLI是开发Solana应用的基础工具。你可以通过官方文档提供的安装步骤,在本地环境中安装适合你操作系统的Solana CLI版本。安装完成后,使用命令行工具进行配置,例如设置网络环境(如开发网…...
使用 PyTorch 实现 ZFNet 进行 MNIST 图像分类
在本篇博客中,我们将通过两个主要部分来演示如何使用 PyTorch 实现 ZFNet,并在 MNIST 数据集上进行训练和测试。ZFNet(ZFNet)是基于卷积神经网络(CNN)的图像分类模型,广泛用于图像识别任务。 环…...
车轮上的科技:Spring Boot汽车新闻集散地
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理汽车资讯网站的相关信息成为必然。开发合适…...
IDEA2023 SpringBoot整合Web开发(二)
一、SpringBoot介绍 由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot提供了一种新的编程范式,可以更加快速便捷…...
国产三维CAD 2025新动向:推进MBD模式,联通企业设计-制造数据
本文为CAD芯智库原创整理,未经允许请勿复制、转载! 上一篇文章阿芯分享了影响企业数字化转型的「MBD」是什么、对企业优化产品设计流程有何价值——这也是国产三维CAD软件中望3D 2024发布会上,胡其登先生(中望软件产品规划与GTM中…...
ubuntu 之 安装mysql8
安装 # 如果 ubuntu 版本 > 20.04 则不用执行 wget 这步 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.debsudo apt-get updatesudo apt-get install mysql-server mysql-client 安装过程中如果没有提示输入密码 sudo cat /etc/mysql/debian.cnf # 查…...
Flink Lookup Join(维表 Join)
Lookup Join 定义(支持 Batch\Streaming) Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维…...
Elasticsearch retrievers 通常与 Elasticsearch 8.16.0 一起正式发布!
作者:来自 Elastic Panagiotis Bailis Elasticsearch 检索器经过了重大改进,现在可供所有人使用。了解其架构和用例。 在这篇博文中,我们将再次深入探讨检索器(retrievers)。我们已经在之前的博文中讨论过它们…...
【并发模式】Go 常见并发模式实现Runner、Pool、Work
通过并发编程在 Go 程序中实现的3种常见的并发模式。 参考:https://cloud.tencent.com/developer/article/1720733 1、Runner 定时任务 Runner 模式有代表性,能把(任务队列,超时,系统中断信号)等结合起来…...
【前端知识】Javascript前端框架Vue入门
前端框架VUE入门 概述基础语法介绍组件特性组件注册Props 属性声明事件组件 v-model(双向绑定)插槽Slots内容与出口 组件生命周期样式文件使用1. 直接在<style>标签中写CSS2. 引入外部CSS文件3. 使用CSS预处理器4. 在main.js中全局引入CSS文件5. 使用CSS Modules6. 使用P…...
Springboot3.3.5 启动流程之 Bean创建流程
在文章Springboot3.3.5 启动流程(源码分析)中我们只是粗略的介绍了bean 的装配(Bean的定义)流程和实例化流程分别开始于 finishBeanFactoryInitialization 和 preInstantiateSingletons. 其实,在Spring boot中,Bean 的装配是多阶段的…...
golang反射函数注册
package main import ( “fmt” “reflect” ) type Job interface { New([]interface{}) interface{} Run() (interface{}, error) } type DetEd struct { Name string Age int } // 为什么这样设计 // 这样就避免了 在创建新的实例的之后 结构体的方法中接受者为指针类型…...
【Spring】Bean
Spring 将管理对象称为 Bean。 Spring 可以看作是一个大型工厂,用于生产和管理 Spring 容器中的 Bean。如果要使用 Spring 生产和管理 Bean,那么就需要将 Bean 配置在 Spring 的配置文件中。Spring 框架支持 XML 和 Properties 两种格式的配置文件&#…...
深入解析TK技术下视频音频不同步的成因与解决方案
随着互联网和数字视频技术的飞速发展,音视频同步问题逐渐成为网络视频播放、直播、编辑等过程中不可忽视的技术难题。尤其是在采用TK(Transmission Keying)技术进行视频传输时,由于其特殊的时序同步要求,音视频不同步现…...
为什么要使用Ansible实现Linux管理自动化?
自动化和Linux系统管理 多年来,大多数系统管理和基础架构管理都依赖于通过图形或命令行用户界面执行的手动任务。系统管理员通常使用清单、其他文档或记忆的例程来执行标准任务。 这种方法容易出错。系统管理员很容易跳过某个步骤或在某个步骤上犯错误。验证这些步…...
厦门小程序开发/seo推广经验
SpringBootWeb应用源码解析 在 Spring 及 Spring Boot 的使用过程中,应用最广泛的当属 Web 应用,而 Web 应用又往往部署在像 Tomcat 这样的 Servlet 容器中。 本章将带领大家学习 Spring Boot 中 Web 应用的整合以及在此过程中与直接使用 Spring 的差别…...
东莞seo优化排名/seo的工作内容主要包括
Kubernetes最近爆出特权升级漏洞,这是Kubernetes的首个重大安全漏洞。为了修补这个严重的漏洞,Kubernetes近日推出了几个新版本。 谷歌高级工程师Jordan Liggitt在周一发布的Kubernetes安全公告中称,Kubernetes v1.10.11、v1.11.5,…...
自做网站告白如何弄/网络广告营销的概念
一、thrift返回结果封装 Thrift文件添加版本号,方便对thrift的版本进行控制 服务与返回的数据类型分开定义 在项目中使用Thrift提供RPC服务时,很多情况下我们都会将返…...
自己做网站步骤/游戏推广公司怎么接游戏的
ArcGIS Server 是功能强大的基于服务器的 GIS 产品,用于构建集中管理的、支持多用户的、具备高级GIS功能的企业级GIS应用与服务,如:空间数据管理、二维三维地图可视化、数据编辑、空间分析等即拿即用的应用和类型丰富的服务。ArcGIS Server 是…...
廊坊集团网站建设/全网关键词云在哪里看
Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式。但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本。即使在各种 GUI 的加…...
做彩票网站是违法的吗/福州百度关键词优化
Sniffer网络分析案例及方法附件:http://down.51cto.com/data/2347890 本文转自 joysuny 51CTO博客,原文链接:http://blog.51cto.com/joysuny/25247,如需转载请自行联系原作者...