当前位置: 首页 > news >正文

沈阳网站建设聚艺科技经典广告语

沈阳网站建设聚艺科技,经典广告语,泉州企业网站维护定制,跨境电商公司招聘岗位及要求背景 最近在看Android开发,发现有一些坑是没有了解过Android开发是无法发现的,简单的记录一下。 场景 用Android开发一个回答问题的APP,大概有5个问题,回答完毕后切换到下一题,或者手工跳到下一题。整个APP功能很简…

20161209

背景

最近在看Android开发,发现有一些坑是没有了解过Android开发是无法发现的,简单的记录一下。

场景

用Android开发一个回答问题的APP,大概有5个问题,回答完毕后切换到下一题,或者手工跳到下一题。整个APP功能很简单,但是依然有很多的坑。

翻转屏幕后问题被重置为第一题

这个问题是一个很有意思的问题,在竖屏的时候查看第四题,但是在横屏之后,问题被重置为第一题了。

要了解这个问题,就必须了解Android中Activity的声明周期。Android中Activity有如下的生命周期:onCreate、onStart、onResume、onPause、onStop、onDestroy。

  • 理解Android的生命周期的变化

当启动一个Activity的时候,会激活onCreate、onStart和onResume。最终用户看到的状态是onResume,这个状态能够获得用户的焦点,并且能让用户与系统进行交互。把日志打出来如下:

12-13 17:15:22.714 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onCreate(Bundle) called
12-13 17:15:22.754 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onStart() called
12-13 17:15:22.754 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onResume() called

这个时候,把屏幕翻转,日志信息如下:

12-13 17:16:37.354 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: nCreate(Bundle) called
12-13 17:16:37.404 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onStart() called
12-13 17:16:37.404 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onResume() called
12-13 17:16:39.494 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onPause() called
12-13 17:16:39.494 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onStop() called
12-13 17:16:39.494 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onDestroy() called
12-13 17:16:39.514 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: nCreate(Bundle) called
12-13 17:16:39.514 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onStart() called
12-13 17:16:38.514 22987-22987/com.example.svenweng.geoquiz D/QuizActivity: onResume() called

从日志我们就可以清楚的看到在执行翻转的时候,系统对原来的Activity进行了销毁的处理,也就是执行了onPause、onStop和onDestroy。之后又执行了onCreate、onStart和onResume。重新创建了一个Activity。

  • 分析问题

从代码上来看,我们控制题目是通过一个题号来处理的,也就是说在onCreate的时候,初始化题号的变量为0,所以在竖屏的时候查看题目的变化是正常的,而一旦翻转屏幕后,就会重新执行onCreate方法,也就是说题号的变量被初始化为0,所以在横屏后,我们就会发现看到的题目又变为第一题了。

  • 修复问题

在屏幕变化的时候,把这个题号的变量做一下存储,就可以解决这个问题

  • 衍生拓展

Activity涉及到横屏竖屏变化的时候,如果存在记录某些数据的中间变量,需要做存储操作,在测试这块内容的过程中,需要针对这个问题进行专门的设计。

翻转屏幕后布局显示的不正确

正常我们看到的界面,是用代码在xml布局文件中写的。一般来说,这个布局是针对竖屏状态的。如果页面翻转后变为横屏,这时Android系统会根据竖屏的布局文件来自动做横屏适配,这种适配有时候会出现控件分布与预期不一致。

  • 分析问题

对于Android系统的自动适配,我们无法控制,这个问题涉及到Android系统的底层。

我们可以根据页面来做分析,可以让开发专门针对横屏的特点进行编写横屏的布局文件,让横屏之后页面的布局由横屏布局文件来控制,以便达到我们想要的效果

另一种方式可以根据需求判定,是否禁止用户进行横屏操作。

  • 衍生拓展

Android的分辨率千变万化,在平板电脑上运行APP也可能导致布局看起来不舒服的情况,也可以评估需求针对这些做专门的布局处理

总结

在Android的屏幕翻转的过程中比较容易出现奇怪的问题,而且翻转的过程中容易出现一些小问题,而且这些问题往往很容易被忽视。

在测试过程中,最好针对每个页面进行分析,是否允许翻转,页面是否会存在中间变量,在翻转的过程中是否有保存。

http://www.lbrq.cn/news/2449153.html

相关文章:

  • wordpress模板百度云信阳seo推广
  • 做我女朋友套路网站广东省广州市佛山市
  • 自动做网站百度推广竞价是什么意思
  • 山东省住房和建设网站bt兔子磁力搜索
  • 潍坊科技网站建设西安网站建设推广优化
  • 网站建设佰金手指科杰二网站策划方案书
  • wordpress远程代码执行网站搜索引擎优化情况怎么写
  • 0基础如何快速做网站营销团队外包
  • 做搜狗网站优化排名怎么找当地的地推团队
  • 商城网站开发哪家好百度推广代理商赚钱吗
  • 国外网站首页设计腾讯企点注册
  • 广州网站营销推广设计建设网站的网站首页
  • 那么多网站都是谁做的福州百度seo代理
  • 好看的网站分享seo关键词排名优化要多少钱
  • 宁波做网站建设推广我们公司在做网站推广
  • wordpress 文章缩放南京seo外包
  • 做电影下载网站需要什么百度最新秒收录方法2023
  • 深圳购物网站建设报价沈阳关键词自然排名
  • 百度做的网站靠谱吗品牌推广百度seo
  • 旅游自媒体网站怎么做百度网址大全手机版
  • 网站访问量什么意思关键词优化一年的收费标准
  • wordpress网站不显示菜单电商网站订烟
  • 自己做网站挂广告怎么赚钱seo云优化是什么意思
  • 网站怎么做竞价建站公司网站源码
  • 简易东莞网站制作公司网络营销带来的效果
  • icp备案网站app开发费用一览表
  • 网站建设要用到编程吗sem推广竞价托管公司
  • 网站系统建设预算网上推广怎么收费
  • 在家接做网站百度客服在线咨询人工服务
  • 微信公众网站开发seo优化快速排名技术
  • 【算法-图论】图的存储
  • 使用爬虫获取游戏的iframe地址
  • 数据库期中复习
  • Docker4-容器化企业级应用
  • Mysql大数据架构设计:当表中数据超过800万时,对数据表进行分表操作,以及分页查询优化详解
  • MIT线性代数02_矩阵消元