没有合适的资源?快使用搜索试试~ 我知道了~
首页java/android 开发面试题
java/android 开发面试题
5星 · 超过95%的资源 需积分: 10 24 下载量 90 浏览量
更新于2023-03-03
评论
收藏 98KB DOCX 举报
1. 请描述下Activity的生命周期。 2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 3. 如何将一个Activity设置成窗口的样式。(Edited by Sodino) 4. 如何退出Activity?如何安全退出已调用多个Activity的Application? 5. 请介绍下Android中常用的五种布局。 6. 请介绍下Android的数据存储方式。(Edited by Sodino) 7. 请介绍下ContentProvider是如何实现数据共享的。(Edited by Sodino) 8. 如何启用Service,如何停用Service。(Edited by Sodino) 9. 注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。 10. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。 11. AIDL的全称是什么?如何工作?能处理哪些类型的数据? 12. 请解释下Android程序运行时权限与文件系统权限的区别。(Edited by Sodino) 13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。 14. 有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明(0xffffffff)像素点的透明度调整为50%。 15. 你如何评价Android系统?优缺点。
资源详情
资源评论
资源推荐
请描述下 的生命周期。如果后台的 由于某原因被
系统回收了,如何在被系统回收之前保存当前状态?如何将一个
设置成窗口的样式。如何退出 ?如何安全退
出已调用多个 的 ?请介绍下 中常用的五种
布局。请介绍下 的数据存储方式。请介
绍下 是如何实现数据共享的。 如何
启用 ,如何停用 。!注册广播有几种
方式,这些方式有何优缺点?请谈谈 引入广播机制的用意。"请解
释下在单线程模型中 #$$%、&、#$$%'((、) 之间
的关系。*+) 的全称是什么?如何工作?能处理哪些类型的数据?
请解释下 程序运行时权限与文件系统权限的区别。
系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请
说明原由。有一个一维整型数组 ,- 保存的是一张宽为 ./,高
为 /%/ 的图片像素值信息。请写一个算法,将该图片所有的白色不透明
"01111像素点的透明度调整为 "2。你如何评价 系统?优
缺点。
1. 请描述下 Activity 的生命周期
/344.5/(%644!
详细介绍一下这几个方法中系统在做什么以及我们应该做什么:
onCreate:在这里创建界面,做一些数据的初始化工作
onStart:到这一步变成用户可见不可交互的
onResume:变成和用户可交互的,(在 activity 栈系统通过栈的方式管理这些
个
Activity 的最上面,运行完弹出栈,则回到上一个 Activity)
onPause:到这一步是可见但不可交互的,系统会停止动画等消耗 CPU 的事情
从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候
你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在
onResume 里读出来,注意:这个方法里做的事情时间要短,因为下
一
个 activity 不会等到这个方法完成才启动
onstop:变得不可见,被下一个 activity 覆盖了
onDestroy: 这是 activity 被干掉前最后一个被调用方法了,可能是外面类调用
nish 方
法或者是系统为了节省空间将它暂时性的干掉,可以用 isFinishing()来判
断它,如果你有一个 Progress Dialog 在线程中转动,请在 onDestroy
里
把他 cancel 掉,不然等线程结束的时候,调用 Dialog 的 cancel 方法会
抛
异常的。
onPause,onstop,onDestroy,三种状态下activity 都有可能被系统干掉
为了保证程序的正确性,你要在 onPause()里写上持久层操作的代码,将用户编辑的内容
都保存到存储介质上(一般都是数据库)。实际工作中因为生命周期的变化而带来的问题
也很多,比如你的应用程序起了新的线程在跑,这时候中断了,你还要去维护那个线程,
是暂停还是杀掉还是数据回滚,是吧?因为 Activity 可能被杀掉,所以线程中使用的变
量和一些界面元素就千万要注意了,一般我都是采用 Android 的消息机制
[Handler,Message]来处理多线程和界面交互的问题。这个我后面会讲一些,最近因为
这些东西头已经很大了,等我理清思绪再跟大家分享。
2. 如果后台的 Activity 由于某原因被系统回收了,如何在被系统回收之
前保存当前状态?
当你的程序中某一个 在运行时中,主动或被动地运行另一个新的
7
这个时候 会执行
Java 代码
1. public
2. voidonSaveInstanceState(BundleoutState){
3. super.onSaveInstanceState(outState);
4. outState.putLong("id",1234567890);
5. }
6.
7. publicvoidonSaveInstanceState(BundleoutState){super.onSaveInsta
nceState(outState);outState.putLong("id",1234567890);}
8.
B 完成以后又会来找 A, 这个时候就有两种情况,一种是 A 被回收,一种是没有被回收,
被回
收的 A 就要重新调用 onCreate()方法,不同于直接启动的是这回 onCreate()里是带上参
数
savedInstanceState,没被收回的就还是 onResume 就好了。
savedInstanceState 是一个 Bundle 对象,你基本上可以把他理解为系统帮你维护
的一个 Map 对象。在 onCreate()里你可能会用到它,如果正常启动 onCreate 就不会有
它,所以用的时候要判断一下是否为空。
Java 代码
if(savedInstanceState != null){
long id = savedInstanceState.getLong("id");
}
if(savedInstanceState != null){long id =
savedInstanceState.getLong("id");}
就像官方的 Notepad 教程里的情况,你正在编辑某一个 note,突然被中断,那么就把这
个 note 的 id 记住,再起来的时候就可以根据这个 id 去把那个 note 取出来,程序就完整
一些。这也是看你的应用需不需要保存什么,比如你的界面就是读取一个列表,那就不需
要特殊记住什么,哦,没准你需要记住滚动条的位置...
3. 如何将一个 Activity 设置成窗口的样式
简单你只需要设置一下 Activity 的主题就可以了在 AndroidManifest.xml 中定义
Activity 的
地方一句话:
Xml 代码
1. android:theme="@android:style/Theme.Dialog"
2.
3. android:theme="@android:style/Theme.Dialog"
4.
这就使你的应用程序变成对话框的形式弹出来了,或者
Xml 代码
1. android:theme="@android:style/Theme.Translucent"
2.
3. android:theme="@android:style/Theme.Translucent"
4.
就变成半透明的,[友情提示-.-]类似的这种 activity 的属性可以在
android.R.styleable 类的 AndroidManifestActivity 方法中看到,
AndroidManifest.xml 中所有元素的属性的介绍都可以参考这个类
android.R.styleable
上面说的是属性名称,具体有什么值是在 android.R.style 中可以看到,比如这
个"@android:style/Theme.Dialog" 就对应于 android.R.style.Theme_Dialog ,
('_'换成'.' <--注意:这个是文章内容不是笑脸)就可以用在描述文件中了,找找类定义和
描述文件中的对应关系就都明白了。
4. 如何退出 Activity
对于单一 的应用来说,退出很简单,直接 8$/即可。
当然,也可以用 9$$和 $60这样的方法。
现提供几个方法,供参考:
、抛异常强制退出:
该方法通过抛异常,使程序 :$。
验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出 :
$ 的窗口。
、记录打开的 :
每打开一个 ,就记录下来。在需要退出时,关闭每一个 即可。
、发送特定广播:
在需要结束应用时,发送一个特定的广播,每个 收到广播后,关闭即
可。
、递归退出
在打开新的 时使用 $:;$(,然后自己加标志,在
;$( 中处理,递归关闭。
除了第一个,都是想办法把每一个 都结束掉,间接达到目的。
但是这样做同样不完美。
你会发现,如果自己的应用程序对每一个 都设置了 $$,在两
个 结束的间隙,$$ 可能有效了。
但至少,我们的目的达到了,而且没有影响用户使用。
为了编程方便,最好定义一个 基类,处理这些共通问题。
5.请介绍下 Android 中常用的五种布局
布局是应用界面开发的重要一环,在 中,共有五种布局方式,
分别是::6)((框架布局),))((线性布局),
$()((绝对布局),;)((相对布局),
<)((表格布局)。
一、:6)(
这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放
了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,
剩余28页未读,继续阅读
拼命小孩
- 粉丝: 24
- 资源: 52
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2