前序:

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 生命周期的了解才能答得更好,上述仅是个人观点。

最新文章

  1. Windows下Nginx配置SSL实现Https访问(包含证书生成)
  2. 学习Redis你必须了解的数据结构——双向链表(JavaScript实现)
  3. Qt中常见错误整理(不定期更新)
  4. php的一些问题
  5. 移动端调试工具DebugGap推荐。
  6. sublime自定义快键键不行,
  7. [转]十步完全理解SQL
  8. Vs注释,vsXML,VSXML注释
  9. PHPExcel中open_basedir restriction in effect的解决方法
  10. String.Format数字格式化参考
  11. appium的xpath定位
  12. Html5 学习之 Html5功能判断插件 Modernizr
  13. stm32的定时器学习
  14. 【Django】django 处理request流程细节(转)
  15. Java学习笔记19(String类)
  16. [Swift]LeetCode358. 按距离为k隔离重排字符串 $ Rearrange String k Distance Apart
  17. 步步为营-90-SEO(url重写+超链接技巧)
  18. Window系统下搭建GIT本地服务器
  19. Echarts中太阳图(Sunburst)的实例
  20. ASP项目部署IIS7.5中遇到的问题

热门文章

  1. c#List移除列表中的元素
  2. <!DOCTYPE html>很重要
  3. js,css控制网页内容不让选中和复制
  4. WIM镜像添加多语言支持
  5. PHP基础知识之字符串运算符
  6. docfx组件介绍--MarkdownLite
  7. 一步步学习javascript基础篇(6):函数表达式之【闭包】
  8. (翻译)《Hands-on Node.js》—— Why?
  9. log4j2.xml实用例子
  10. AMD and CMD are dead之js模块化黑魔法