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

时间: 2024-10-12 07:46:09

记录 android 开发的一个 "面试" 问题的相关文章

今日头条Android开发岗实习生面试

实习僧上投递的简历,6.25下午投递,当天被查看,6.26上午收到面试邀请,约定面试时间7.4  14:00 没估计好路上的时间,大概1:10分左右到达,在一楼休息区等了半个小时,才上楼去前台登记面试,面试的人很多,以为要等很久,没想到刚坐下就被叫到了,emmmm,面试这个岗位的只有我一个? 一面,是个女面试官,45分钟 上来先自我介绍,然后...."我们先来写个算法吧,写个归并排序" 我的天,我都懵了好么,能怎么办,捂着我的小心脏写啊,幸好之前把几大常用算法都整理了一遍,去的路上也一

1-3年Android开发工程师怎么面试?已拿下知乎、网易和快手的offer!

分享一下我朋友的面经给大家,最后他去了知乎,所以这也是一份非常中肯的面经! 本篇文章给大家分享一下笔者面试的一些感受和经验,因为笔者目前不到两年的工作经验,所以本篇文章定位为1-3年的Android开发工程师.当然本篇也适用于校招,但3年以上估计面试要求会更高一些. 笔者从前期准备到所有面试结束,花费了差不多3个月的时间.真可谓"面试造火箭,工作拧螺丝",面试过程真的很累很辛苦. 笔者面了很多公司,最终拿下了知乎.网易和快手的offer,最后选择了知乎. 有人可能会问为什么不选择快手?

android开发中一个activity如何调用另一个xml中的控件

有时候,我们需要在一个Activity中调用另一个xml布局文件,即非本Activity所绑定的xml布局文件中的控件,这时候就不能直接findViewById,不然会报错指向空对象,这时就需要像下面这样做. LayoutInflater factory = LayoutInflater.from(当前类.this); View layout = factory.inflate(R.layout.你要获取的另一个XML, null); TextView textview = (TextView)

记录Android开发大牛博客,献给那些Android开发路上学习的人

罗升阳 :https://blog.csdn.net/Luoshengyang邓凡平 :https://blog.csdn.net/innost魏祝林:https://blog.csdn.net/android_tutorTrinea :http://www.trinea.cn/halzhang :http://www.cnblogs.com/halzhang代码家 :https://daimajia.com/郭霖 :https://blog.csdn.net/guolin_bloghanyon

Android开发学习总结(六)—— APK反编译(转)

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装.正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了.但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片).layout.样式.相关的实现代码等,ap

20145311实验四 "Android开发基础"

20145311实验四 "Android开发基础" 程序设计过程 实验内容 ·安装Android Studio·运行安卓AVD模拟器·使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 实验步骤 最开始是对android studio的安装:差不多就是按照默认进行安装, 我们要装的我感觉就是一个Android SDK, 从而能够进行安卓的开发,其他的不过是一个开发的环境而已, 使用IDEA加上SDK也是可以的. 下面是安装完成后的截图: 运行后新建一个工程 创建项目后选择A

使用Visual Studio进行 Android开发的十大理由

[原文发表地址]Top 10 reasons to use Visual Studio for C++ Android Development! Visual Studio: C++跨平台的移动解决方案 Visual Studio (下载地址) 正在迅速成为一个跨平台的C++IDE.我们的目标是让Visual Studio成为您研发C++跨平台代码的选择,无论您的目标是Windows (UWP), Android, iOS, Linux, Xbox, PlayStation, Marmalade

Android开发学习总结(六)—— APK反编译

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装.正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了.但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片).layout.样式.相关的实现代码等,ap

给 Android 开发人员的 RxJava 具体解释

鉴于 RxJava 眼下这样的既火爆又神奇的现状,而我又在一年的使用过程中对 RxJava 有了一些理解,我决定写下这篇文章来对 RxJava 做一个相对具体的.针对 Android 开发人员的介绍. 这篇文章的目的有两个: 1. 给对 RxJava 感兴趣的人一些入门的指引 2. 给正在使用 RxJava 但仍然心存疑惑的人一些更深入的解析. 在正文開始之前的最后,放上?GitHub?链接和引入依赖的?gradle?代码: Github:? https://github.com/Reactiv