记录 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 条评论
登录 后参与评论

相关文章

来自专栏乐享123

Migrate Centos7 From Centos6

1995
来自专栏IT笔记

从零开始搭建ELK+GPE监控预警系统

前言 本文可能不会详细记录每一步实现的过程,但一定程度上可以引领小伙伴走向更开阔的视野,串联每个环节,呈现予你不一样的效果。 业务规模 8个平台 100+台服务...

4397
来自专栏JavaQ

不得不推荐的开发利器

子曰:“工欲善其事,必先利其器“,事先把工具准备好,可以起到事半功倍的效果,本篇将介绍开发过程中经常使用到的开发工具们。

1782
来自专栏安恒信息

安恒信息明御APT攻击(网络战)预警平台全新升级

安恒信息明御APT攻击(网络战)预警平台V2.0.22升级版已于今日发布,相对之前的版本检测度更加细化,灵活度有了更大的提升,自定义方式也更加人性,...

5005
来自专栏程序你好

微服务架构入门(Micro-Architecture)

945
来自专栏EAWorld

微服务模式系列之八:第三方注册

译者自序: 熟悉我的朋友都知道,我很不喜欢翻译东西,因为在两种语言的思维方式之间做频繁切换对我来说是件很痛苦的事情。但是这次不一样,公司和同事的大力支持降低了我...

2678
来自专栏小白课代表

休息,是为了更好的前行。

1303
来自专栏Java学习123

WebService到底是什么?

4158
来自专栏编程一生

架构师之路--视频业务介绍,离线服务架构和各种集群原理

1352
来自专栏程序人生

如何使用一门新的语言

在去年的文章里,我谈了 如何学习一门新的技术。那篇文章通篇形而上,讲大道理,读者颔首称赞,但回过头来在应用层面还是懵懵懂懂,不明就里。今天,我就我过去三周的经验...

2786

扫码关注云+社区