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

相关文章

来自专栏程序人生

如何使用一门新的语言

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

29860
来自专栏安恒信息

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

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

72450
来自专栏偏前端工程师的驿站

CentOS6.5菜鸟之旅:安装ATI显卡驱动

一、前言                                       自从安装了CentOS,我的显卡就没消停过,一直在彪高温而且噪音特别大,于...

350100
来自专栏杨建荣的学习笔记

不能轻视的mysql重启过程 (r7笔记第55天)

数据库的重启看似是一件非常简单,没有技术含量的活,这是我以前说的话。而这句话简直是戳中了我的痛点。这种活真是太有技术含量了,高深到让人需要注意太多的东西,需要做...

39550
来自专栏IT笔记

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

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

64770
来自专栏Java学习123

WebService到底是什么?

51780
来自专栏小狼的世界

[每天五分钟,备战架构师-1]操作系统的类型和结构

计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展...

11820
来自专栏竹清助手

为什么选择PHP作为后台语言

越来越多的企业使用PHP+MYSQL搭建网站,究竟PHP有什么好,为什么要选择用PHP? 1. 跨平台,性能优越,跟Linux/Unix结合别跟Windo...

23230
来自专栏程序员互动联盟

【专业技术】WebService为何物?

一、序言: 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹...

37250
来自专栏AI科技评论

真正从零开始,TensorFlow详细图文安装入门教程!

GAIR 今年夏天,雷锋网将在深圳举办一场盛况空前的“全球人工智能与机器人创新大会”(简称GAIR)。大会现场,谷歌,DeepMind,Uber,微软等巨头的人...

428140

扫码关注云+社区

领取腾讯云代金券