记录 android 开发的一个 "面试" 问题

前序:

     3天前,有幸得到师兄赏识,和他一起去帮一间珠海的本地的IT公司担任面试官,虽说如此,我自己本身就还没毕业,充其量是去见识下世面罢了。当天共面试了13人,这只是上午,下午我闪了。在笔试的部分,我设置了一个比较简单的和常见的 android 页面跳转问题,当然要给其他"大佬"先审核。

问题原型:

     现有3个页面,A页面每次初始化都会请求一次网络数据,A总是采用startActivity(Intent),跳转到B,B页面是数据编辑页面,它拥有3个按钮,一个点击总是返回A,一个上传数据,最后一个点击跳转到C页面,C页面负责挑选图片或视频,C页面只允许设置一个按钮。

     现需要你在请求网络次数最少的情况下,正确地设置 A->B->C->B->A的跳转逻辑,及其理由。

收到的N种答案(核心如下),理由省略(没记住....):

     1,A跳到B,B的使用startActivity()跳至C,C在选择完数据后,点击按钮采用startActivity()附带数据跳回B,B采用startActivity() 跳回A;

     这个答案,不用多说,弊端就是A就刚初始化APP的时候就请求了一次网络,在最后的跳转又被初始化了一次,而且,B也在C跳的时候被多初始化一次,这种就是盲目使用 statryActivity,作者开发经验较为缺乏。虽然我也是新手,这个还是知道的。

     2,A跳到B,B的使用startActivity()跳至C,C在选择完数据后,点击按钮采用startActivity()附带数据跳回B,B采用finish()跳回A。

     死循环模式,这种直接pass 掉。

     3,A跳到B,B的使用startActivityForResult()跳至C,C在选择完数据后,点击按钮采用finish()附带数据跳B,B采用finish()回A。

     我心中的完美模式。

     4,先声明个全局的static boolean变量。A跳到B,B的使用startActivity()跳至C,C在选择完数据后,将此全局布尔置为true,点击按钮采用finish()跳B,B在onResume 判断此布尔,有数据则进行对应的控件操作,否则不操作,回A采用finish()。

     这类答案也是可行的,作者对Activity的生命周期比较了解,缺点就是牺牲了空间,不可广用。

     .....

结语:

     这问题比较基础,需要一定的实战开发经验和对activity 生命周期的了解才能答得更好,上述仅是个人观点。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Netkiller

PHP 7.0.0 一键安装脚本

OSCM (Operation System Configure Management) 是我创建的一个自动化运维脚本的项目,旨在提供敏捷运维。传统自动化运维工...

2715
来自专栏服务端思维

Java面试通关要点 汇总集【最终版】

首先,声明下,以下知识点并非阿里的面试题。这里,笔者结合自己过往的面试经验,整理了一些核心的知识清单,帮助读者更好地回顾与复习 Java 服务端核心技术。本文会...

742
来自专栏BaronTalk

Android 性能监控系列一(原理篇)

性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会...

2557
来自专栏北京马哥教育

如何实现多站点运维监控?

在小型公司里如果产品线单一的话,比如就一个app, 一般1~2个运维就够用了,如果产品过于庞大,就需要多个运维人员,但对于多产品线的公司来说,运维人员就要必须...

882
来自专栏古时的风筝

跨平台这件事儿

跨平台很神秘吗 刚刚开始做开发的时候,感觉跨平台是那么高大上,就像夕阳下,湖面上的一朵白莲花,只可远观,不可亵玩焉。那么,跨平台到底是怎么一回事儿。难道真的有什...

1746
来自专栏腾讯移动品质中心TMQ的专栏

从插件重构看如何提升测试质量与效率

几个月前技术侧发起了一轮手机管家小火箭的重构,目的是为了更好地梳理小火箭的代码架构逻辑,方便以后更好地提高开发效率和开发质量。

2856
来自专栏安恒信息

Jsprime——一款JavaScript静态安全分析工具

如今,越来越多开发人开始将JavaScript作为其首选语言方案。理由很简单,JavaScript如今正越来越多地被视为应用程序的主流开发语言——无论是在Web...

2807
来自专栏IMWeb前端团队

Front-End MV*简述(一)

本文作者:IMWeb 何璇 原文出处:IMWeb社区 未经同意,禁止转载 近几年来由于web应用的交互越来越复杂,前端技术也迎来了一个飞速发展的时期。...

16910
来自专栏EAWorld

基于React Native的移动平台研发实践分享

本文目录: 一、React Native 已经成为了移动前端技术的趋势 二、基于React Native 进行移动平台研发过程中的一些思考 三、基于React ...

3329
来自专栏PHP在线

从零开始学设计模式(1):基础编程模式

Introduction 俗话说,“PHP是世界上最好的语言”,因为PHP什么都能干。但是在PHP编程中,你是否会遇到这样的困惑:明明是相同的需求,但是之前写的...

3417

扫码关注云+社区