首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

int变量不随屏幕旋转一起保存

是因为屏幕旋转会导致Activity的重新创建,而int变量是保存在Activity的内存中的,所以在屏幕旋转后,Activity会被销毁并重新创建,导致int变量的值丢失。

为了解决这个问题,可以使用以下方法来保存int变量的值:

  1. 使用Bundle保存和恢复变量值:在Activity的onSaveInstanceState和onRestoreInstanceState方法中,可以使用Bundle对象来保存和恢复int变量的值。在onSaveInstanceState方法中,将int变量的值存储到Bundle中;在onRestoreInstanceState方法中,从Bundle中恢复int变量的值。
  2. 使用SharedPreferences保存和恢复变量值:可以使用SharedPreferences来保存和恢复int变量的值。在Activity的onPause方法中,将int变量的值存储到SharedPreferences中;在onResume方法中,从SharedPreferences中恢复int变量的值。
  3. 使用ViewModel保存和恢复变量值:可以使用Android Jetpack中的ViewModel来保存和恢复int变量的值。ViewModel是一个与UI无关的类,可以在Activity的生命周期中保持数据的一致性。将int变量的值存储在ViewModel中,在Activity重新创建后,可以从ViewModel中获取int变量的值。

以上是针对int变量不随屏幕旋转一起保存的解决方法,根据具体的需求和场景选择适合的方法。腾讯云相关产品和产品介绍链接地址请参考腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android应用开发:屏幕旋转时的非中断保存之setRetaineInstance

Android应用开发:Fragment的非中断保存setRetaineInstance 引言 首先,要明确什么叫“非中断保存”。...而当Activity配置发生改变(如屏幕旋转)时候,旧的Activity会被销毁,然后重新生成一个新屏幕旋转状态下的Activity,自然而然的Fragment也会随之销毁后重新生成,而新生成的Fragment...生命周期 Activity的生命周期在配置发生改变时: onPuase->onStop->onDestroy->onStart->onResume 比如在Activity中发生屏幕旋转,其生命周期就是如此...总结 这里结合Fragment.java中setRetainInstance的注释进行一下Fragment非中断保存的总结。...并且,被保存的Fragment实例不会保持太久,若长时间没有容器承载它,也会被系统回收掉的。

85920

旋转图像

将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。...例如元素 (i, j) 对应的四个位置分别是: (i, j) (N-1-j, i) (N-1-i, N-1-j) (j, N-1-i) 为了旋转这四个元素,我们可以用一个临时变量保存其中一个元素,然后让几个元素依次赋值...如果 n 是奇数,矩阵的中心元素是不随旋转移动的,而剩下的元素均分成四块,每块的元素个数是「 n / 2 」*「 n / 2 」 。 我们对一块中的所有元素做一次四元素旋转即可。...动画理解 参考代码 class Solution { public void rotate(int[][] matrix) { int N = matrix.length;...for (int i = 0; i < N/2; i++) { for (int j = 0; j < (N+1)/2; j++) {

48440
  • 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址

    备份一下,然后修改为不随机基址 不随机基址,就是地址没次运行都是一样的,现在我们比较两个文件,随机基址在文件中是存的一个标记 我们在PE文件中更改这个标记,则可以达到基址是一样的了 ?...Text1是随机基址的,TEst是不随机的 使用Winhex对比 ? 比对 ?...那么我们看下这个地址有没有别的变量保存 例如 int *p = 0x 106F6EB0 Int *p1 = p ;有可能是这样存储的 复制出来搜索一下 以16进制扫描,来一个新的扫描 ?...我们发现这块局部变量地址,也有人来保存,那么我们OD查一下这块局部变量的地址,看下内容(为什么要再次搜索,因为如果有保存这个值的局部变量,那么就不是最终的地址,所以一定找到顶层) (别忘了OD的内存断点取消...,我们会发现,有的时候下了内存断点,你的植物大战僵尸暂停界面会停止不动,那么可能是我们找错了,删除内存断点,重新继续 我们排除0018开头的,因为不光是局部变量,如果是你写代码,你有可能会写很多地址相似的位置一起保存

    2.5K71

    抠图专家要失业了?CV技术加持下的AR,实现隔空抠图复制粘贴

    其中,移动APP使用了Expo这个通用的React应用架构和平台搭建,本地服务器使用了ScreenPoint超早摄像头在屏幕上所指向的位置,背景移除使用的技术是基于被Pattern Recognition...然后,利用 OpenCV SIFT 找出手机在电脑屏幕上对准的位置。只需要一张手机照片和截图,就可以得到准确的 x, y 屏幕坐标系。...是一种不随图像尺度旋转变化而变化的特征,因此SIFT特征不会随着图像的放大缩小,或者旋转而改变,同时由于在提取特征时做的一些特殊处理,使得SIFT特征对于光照变化也有比较强的适应性。...他的工作重点是将数字技术与非常规技术融合在一起,从而创造诗意版的互动体验。...图自:github Via https://mp.weixin.qq.com/s/zZN_xQ7yGZElmrv6fOI0oQ http://inst-int.com/2015/speaker/cyril-diagne

    85320

    Unity基础(20)-Camera类

    Forward 正向渲染:所有对象每材质渲染只渲染一次,快速渲染 Deferred 延迟照明:所有物体将在无光照的环境渲染一次,然后在渲染队列尾部将物体的光照一起渲染出来。...Forward 正向渲染:所有对象每材质渲染只渲染一次,快速渲染 Deferred 延迟照明:所有物体将在无光照的环境渲染一次,然后在渲染队列尾部将物体的光照一起渲染出来。...= -1; //记录当前物体的层 int layer_now; int layerTemp;//记录2的layer次方的值 int ad;//记录与运算(&)的结果...这里要注意:Screen.width和Screen.height为模拟硬件屏幕的宽高值,不随Camera.pixelWidth和Camera.pixelHeight的改变而改变。...这个方法可以将摄像机的渲染一次赋给多个colorBuffer. public class SetTargetBuffers : MonoBehaviour { //声明两个RendererTexture变量

    2.7K30

    mini DSO STC15 开源示波器

    0则进入自动量程,逆时针旋转进入手动量程 触发值:设定触发电压值,触发位置被放在屏幕中心 触发方向:上下箭头,分别代表上升沿触发和下降沿触发 触发方式:...):分压系数的100倍,比如用10k加2k的电阻进行分压,分压系数为(10+2/2)=6,LSB理论取值为6x100=600,根据实际电阻精度进行微调 BRT:OLED亮度 保存设置...:长按编码器退出设置界面时,设置界面和主界面的所有参数被保存到EEPROM 这个图是在上面都看不懂的情况下使用 缺陷: 1....,这里也单独的进行了功能的封装 剩下就是处理屏幕的事情了,以后说 变量 延时 实现 引脚定义 OLED的连接 关于设置 编码器使用的是中断法 电池电压的测量使用了一个ADC 旋转中断的实现...这个值得看一下: void INT0_interrupt(void) interrupt INT_0 关键词声明,这个是中断 延时500us 判断这个中断引脚上面的信息 bit EC11PressAndRotate

    1.2K30

    Android JetPack~LiveData(二) 数据倒灌问题

    1、数据倒灌的出现 场景: 如果我们在一个home页面获取网络数据,然后通过LiveData的观察者特性,在回调中跳转B页面,当旋转屏幕时,页面重建,LiveData又发来最后一次数据,那么直接触发了跳转...但是屏幕旋转后,mLastVersion的值却变成了-1。这里就是问题所在了。...倒灌原因小结 Activity异常销毁然后重建,ViewModel会保存销毁之前的数据,然后在Activity重建完成后进行数据恢复,所以LiveData成员变量中的mVersion会恢复到重建之前的值...由于LiveData本身的特性,Activity的生命周期由非活跃变成活跃时,LiveData会触发事件分发,导致屏幕旋转或者切换系统语言后出现数据倒灌。...解决办法 再来回顾下,数据倒灌的常见方式: 屏幕旋转 用户手动切换系统语言 方案: 如果应用不需要横屏,就设置为永久竖屏。

    2K20

    ViewModels 简单入门

    最终的App有一个bug,如果你旋转手机,当前保存的分数会莫名归零。 ? 这是什么原因呢?因为旋转设备会导致 App 中一些 配置发生改变 ,比如键盘是否可用,变更设备语言等。...ViewModel 类旨在以有生命周期的方式保存和管理与UI相关的数据。 这使得数据可以在屏幕旋转等配置变化的情况下不丢失。 这篇文章是详细探索ViewModel系列文章中的第一篇。...在UI控制器中将 ViewModel 创建为一个成员变量。...旋转其中一个屏幕,则保持与同一个ViewModel的连接。 ?...关键要点是: ViewModel类旨在一个连续的生命周期中保存和管理与UI相关的数据。这使得数据可以在屏幕旋转等配置变化的情况下得以保存。 ViewModels将UI实现与 App 数据分离开来。

    1.2K70

    Android图片相关

    Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作...二、Android读取图片资源 Drawable目录 已将图片保存到drawable目录下,通过图片id获得Drawable或者Bitmap,此方式最常用。...BitmapFactory.decodeResource(res, id); (3)通过图片的名称获得图片的id(两种方法) Resources res = context.getResources(); int...layout-640×360 根据屏幕尺寸 layout-xhdpi 根据屏幕尺寸 layout-xhdpi-v19 根据屏幕尺寸和sdk版本 2)hdpi、mdpi、ldpi 在之前的版本中,只有一个...要让程序界面保持一个方向,不随手机方向转动而变化的处理办法: 在AndroidManifest.xml里面配置一下就可以了。

    71430

    Android自定义钟表特效

    内容和轮廓都绘制 mPaint.setStyle(Paint.Style.STROKE); } 开始画圆 //设置线宽,线宽默认是1 mPaint.setStrokeWidth(2); //在屏幕中心画圆...,半径为屏幕的1/3 canvas.drawCircle(getWidth() / 2, getHeight() / 2, getWidth() / 3, mPaint); 画圆心 //整个屏幕中心为圆心点...接着再绘制数字 save和restore是成对出现的,为了这一块操作不影响下面的元素,一个保存,一个取出的意思 canvas.save(); for (int i = 0; i < 12; i++)...- 35); //在逆时针平移30都 canvas.rotate(-degree); } 最后绘制分针、秒针、时针 //秒针 canvas.save(); //save方法作用是将画布先保存下来...();//涉及到线程,界面刷新需要使用此方法 } }; public void start() { timer.schedule(timerTask, 0, 1000); } 在下面的旋转角度里调用三个变量

    65520

    Android自定义系列——13.Matrix Camera

    Android 上面观察View的摄像机默认位置在屏幕左上角,而且是距屏幕有一段距离的,假设灰色部分是手机屏幕,白色是上面的一个View,摄像机位置看起来大致就是下面这样子的(为了更好的展示摄像机的位置...image.png 基本方法 基本方法就有两个save 和restore,主要作用为保存当前状态和恢复到上一次保存的状态,通常成对使用,常用格式如下: camera.save(); // 保存状态 ....这就要使用到我们在Matrix原理提到过的方法: Matrix temp = new Matrix(); // 临时Matrix变量 this.getMatrix(temp); // 获取Matrix...width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth...width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth

    1.3K10

    unity官方案例精讲(第三章)--星际航行游戏Space Shooter

    屏幕的任何空白部分都将显示当前相机的天空盒。如果当前摄影机没有设置“天空盒”(skybox) solid color:屏幕的任何空白部分都将显示当前相机的背景色。...这通常不用于游戏,而且更可能与自定义着色器一起使用 注意,在某些GPU(主要是移动GPU)上,如果不清除屏幕,可能会导致下一帧中未定义屏幕内容。...若飞船左右倾斜,则需要绕z轴旋转,往左移动的时候,x轴方向上速度为负值,而此时旋转角度(逆时针)应该为正值,所以需要乘以一个负数。  ...并且修改调用方法,设置变量的是为0.5 (5)由于不想一开始就生成小行星,可以在设置一个变量startWait,在for循环的上面添加一段代码,保存,设置startwait为1  (6)如果想不断的产生多波小行星...public int scoreValue;//设置小行星的分数 private GameController gameController;//创建一个GameController类的变量  (5)

    3.1K30

    CSS背景图像,镜像翻转、缩放、背景偏移与定位、文字溢出处理

    CSS下镜像翻转(水平/垂直翻转)两种写法【方法一】利用css动画属性rotate旋转来实现:/* 方法一 */.mirrorRotateLevel { transform: rotateY(180deg...,镜像翻转以轴为镜像,普通旋转以点为镜像。...background-repeat: no-repeat;背景图片 终极缩放大法object-fit: cover;cursor: pointer;background-attachment用来设置背景图片是否随页面一起滚动可选值...:不随窗口滚动的图片,我们一般都是设置给body,而不设置给其他元素background-attachment: fixed;scroll,默认值,背景图片随着窗口滚动fixed,背景图片会固定在某一位置...,不随页面滚动背景图像偏移, 如下: 水平(宽度.左右平移) 垂直(高度.上下)background-position: -50px -50px;背景图片默认是贴着元素的左上角显示通过background-position

    17.2K10

    实验5 立方体显示与变换

    ,产生两点透视和三点透视,将两种透视图结果存为图1-2,与对应修改的代码一起保存至word实验文档中(20分钟); (2) 参考教材代码7.3.5,将代码中的立方体改为四棱锥,将测试结果存为图3,与对应修改的代码一起保存至...在示范代码2基础上,按以下要求修改: (3) 学习OpenGL观察变换函数gluLookAt的设置与使用方法,并在代码中修改参数产生两点透视和三点透视,将两种透视图结果存为图4-5,与对应修改的代码一起保存至...由于投影变换,视口变换共同决定了场景是如何映射到计算机的屏幕上的,而且它们都与屏幕的宽度、高度密切相关,因此应该放在reshape函数中。reshape函数会在窗口初次创建,移动或改变时被调用。...视口变换指定一个图像在屏幕上所占的区域,可参考OpenGL的glViewport视口变换函数详解。 (5)绘制场景。...ColorCube(); glPopMatrix(); rquad -= 0.15f; //修改立方体的旋转角度 glutSwapBuffers(); } void reshape(int

    1.1K40

    Android Jetpack系列之 ViewModel

    ViewModel类让数据可在发生屏幕旋转等配置更改后继续存在。...@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) public void onDestory() { } } 我们运行程序,在计数的过程中 使屏幕旋转...我们可以看到,当屏幕旋转的时候,由于生命周期发生了改变,导致数据被销毁,所以计数器的计数又从初始值开始计数了,那么我们如何解决这个问题呢,你肯定会说,缓存呀,重写onSabeInstanceState(...extends ViewModel { public int count = 0; } 没错,就是这么简单,我们只要保证计数的变量是这个model中的变量,就可以解决我们上面的问题 我们通过...我们可以看到,在屏幕旋转之后,计数器的计数保留了,那么viewModel是如何做到的呢,这是因为ViewModel 对象存在的时间比视图或 LifecycleOwners 的特定实例存在的时间更长,ViewModel

    84820

    OpenGL 之 GPUImage 源码分析

    如果以左下角为纹理坐标系的坐标原点,那么除了要将纹理坐标向右顺时针旋转 90° 之外,还需要进行上下翻转才行,至于为什么要向右顺时针旋转 90° ,参考这篇文章,投稿在郭霖的公众号上: Android相机开发详解...onInitialized 方法会给一些 uniform 字段变量赋值,在 GPUImageFilter 类中还对不同类型的变量赋值进行了对应的方法,比如对 float 变量: 1 protected...1 // 遍历时,选择 mMergedFilters 的长度,因为 mMergedFilters 里面才是保存的所有的 滤镜的长度。...如果是最后一个滤镜,那么就不用绑定到 FrameBuffer 上了,直接绘制到屏幕上即可。...调用的最后都是通过 glReadPixels 方法将处理后的图像读取出来,并保存为 Bitmap 。

    1.1K20

    在编程中发现数学之美——使用python和Processing绘制几何图形

    注意原点仍然被标记为(0,0),实际上我们并没有移动原点,只是移动了整个坐标系,这样把原点移动到屏幕中央来了。 使用rotate旋转对象 在几何中旋转表示将一个物体围绕着一个中心转动。...使用pushMatrix和popMatrix保存方向 但你运行上面的代码,你将会看到一些奇怪的动作,这些方块没有围绕着中心选择,只是在屏幕上一直在移动。 ?...Processing有两个内置的函数用来保存坐标系在某个点的方向并且返回:pushMatrix()和popMatrix()。在这个例子中,我们需要保存原点位于屏幕中心时的方向。...然后我们使用popMatrix()返回保存的方向,然后重复绘制12个方块。 围绕原点旋转 前面的代码能够正常的工作,但是这个旋转看上去有点奇怪。...程序把距离保存变量d中,我们将会把它与色调联系起来。

    6.1K11

    附加实验2 OpenGL变换综合练习

    OpenGL还定义了局部坐标系的概念,所谓局部坐标系,也就是坐标系以物体的中心为坐标原点,物体的旋转或平移等操作都是围绕局部坐标系进行的,这时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作...确省时,相机(即视点)定位在坐标系的原点(相机初始方向都指向Z负轴),它同物体模型的缺省位置是一致的,显然,如果不进行视点变换,相机和物体是重叠在一起的。...这样,在OpenGL中,以逆时针旋转物体就相当于以顺时针旋转相机。因此,我们必须把视点转换和模型转换结合在一起考虑,而对这两种转换单独进行考虑是毫无意义的。...除了用模型转换命令执行视点转换之外,OpenGL实用库还提供了gluLookAt()函数,该函数有三个变量,分别定义了视点的位置、相机瞄准方向的参考点以及相机的向上方向。...eyex,eyey,eyez定义了视点的位置;centerx、centery和centerz变量指定了参考点的位置,该点通常为相机所瞄准的场景中心轴线上的点;upx、upy、upz变量指定了向上向量的方向

    1.4K30

    JetPack组件学习ViewModel

    ViewModelStore中 //而ViewModelStore是Activity/Fragment提供的(做了屏幕转换的恢复处理,ViewModelStore会保存其数据) var...progress:MutableLiveData?...1.首次mViewModelStore肯定为null,从nc中取出肯定也取不到只能通过new的方式去创建 2.当经历了屏幕旋转这时候就会从configure中取出viewmodelStore了,对应的也就是第二个红框...ViewModel vm : mMap.values()) { vm.clear(); } mMap.clear(); } } 问答 如何实现旋转屏幕数据保持不变...层还是得利用很多接口进行传递数据,这种主动通知V层的方式虽然变成接口回调的方式本质上耦合还是严重,可以通过LiveData V层去观察ViewModel中的数据变化这样耦合会降低一些 2.当配置失效比如屏幕旋转会销毁重建

    62510
    领券