教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> > 面试> Android面试题

Android面试题

上传者:李友良
|
上传时间:2015-05-06
|
次下载

Android面试题

1. 什么是Activity?

四大组件之一,一般的,一个用户交互界面对应一个activity

setContentView() ,// 要显示的布局

, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.

button.setOnclickLinstener{

}

我开发常用的的有ListActivity , PreferenceActivity ,TabAcitivty等…

如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity.

进度对话框的显示与销毁 doubanservice

2. 请描述一下Activity 生命周期。

生命周期描述的是一个类 从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法.. 在这个过程中 会针对不同的生命阶段会调用不同的方法

Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause

其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;

onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;

对话框的弹出, Activity.this

对话框是activity的一部分.

这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢? 答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;

如果被onDestroy了,则是调用onCreate方法。

最后讲自己项目中的经验,比如说豆瓣客户端每次进入某个界面的时候都要看到最新的数据,这个刷新列表的操作 就放在onStart()的方法里面.

fillData() 这样保证每次用户看到的数据都是最新的.

多媒体播放, 播放来电话. onStop() 视频, 视频声音设置为0 , 记录视频播放的位置 mediaplayer.pause();

onStart() 根据保存的状态恢复现场. mediaplayer.start();

在读文档的时候 还发现 activity还有两个方法 onPostResume() 和 OnPostCreate()这两个生命周期的方法,不过开发的时候没有用到过.

3. 两个Activity之间跳转时必然会执行的是哪几个方法。

一般情况比如说有两个activity,分别叫A,B ,当在A里面激活B组件的时候, A 会调用 onPause()方法,然后B 调用onCreate() ,onStart(), OnResume() ,

这个时候B覆盖了窗体, A会调用onStop()方法. 如果B呢 是个透明的,或者是对话框的样式, 就不会调用onStop()方法

4. 横竖屏切换时候Activity的生命周期。

这个生命周期跟清单文件里的配置有关系

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期

默认首先销毁当前activity,然后重新加载

Onpause onstop ondestory oncreate onstart onresume

2、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

游戏开发中, 屏幕的朝向都是写死的.

5. 如何将一个Activity设置成窗口的样式。

可以自定义一个activity的样式,详细见手机卫士的程序详细信息

android:theme="@style/FloatActivity"

E:\day9\mobilesafe\res\values\style

6. 你后台的Activity被系统 回收怎么办?如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?

除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

outState.putLong("id", 1234567890);

}

public void onCreate(Bundle savedInstanceState) {

//判断 savedInstanceState是不是空

内容需要下载文档才能查看

.

//如果不为空就取出来

super.onCreate(savedInstanceState);

}

7. 如何退出Activity?如何安全退出已调用多个Activity的Application?

退出activity 直接调用 finish () 方法 . //用户点击back键 就是退出一个activity 退出activity 会执行 onDestroy()方法 .

1、抛异常强制退出:

该方法通过抛异常,使程序Force Close。

验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。

//安全结束进程 android.os.Process.killProcess(android.os.Process.myPid());

2、记录打开的Activity:

每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。

List<Activity> lists ; 在application 全集的环境里面

lists = new ArrayList<Activity>();

每一个activity在执行oncreate()方法的时候 lists.add(this);

Ondestory() lists.remove(this);

lists.add(activity);

for(Activity activity: lists)

{

activity.finish();

}

3、发送特定广播:

在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。

//给某个activity 注册接受接受广播的意图

registerReceiver(receiver, filter)

//如果过接受到的是 关闭activity的广播 就调用finish()方法 把当前的activity finish()掉

4、递归退出

在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

404 退出程序

OnActivityResult();

讲一讲你对activity的理解

把上面的几点用自己的心得写出来

8. service是否在main thread中执行, service里面是否能执行耗时的操作?

默认情况,如果没有显示的指定service所运行的进程, Service和activity是运行在当前app所在进程的main thread(UI主线程)里面

service里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )

在子线程中执行 new Thread(){}.start();

特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,

让service在另外的进程中执行

<service android:process="cn.itcast.xxx"></service>

9. 两个Activity之间怎么传递数据?

基本数据类型可以通过. Intent 传递数据 extras.putDouble(key, value)

intent.putExtra(name, value)

// 通过intent putExtra 方法 基本数据类型 都传递

Bundle bundle = new Bundle();

bundle.putShort(key, value);

intent.putExtras(bundle);

intent.putExtras(bundle);

获取到激活他的 getIntent();

Intent intent = getIntent(); Bundle bundle = intent.getExtras();

Bundle 类似map的集合

intent.getStringExtra("key","value");

intent.getBooleanExtra("key","value")

Application 全局里面存放 对象 ,自己去实现自己的application的这个类,基础系统的application , 每个activity都可以取到

让对象实现 implements Serializable 接口把对象存放到文件上.

让类实现Serializable 接口,然后可以通过 ObjectOutputStream //对象输出流

File file = new File("c:\\1.obj"); FileOutputStream fos = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fos); Student stu = new Student(); stu.setId("10001");

stu.setName("zs"); oos.writeObject(stu); FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); Student stu1 = (Student) ois.readObject(); System.out.println(stu1.getName()); Parcelable 和 Serializable

Parcelable 把对象序列化到android操作系统 的一块公用的内存空间

文件/网络

//传递数据的引用

intent.setData(Uri)

Uri.fromFile(); //大图片的传递

contentResolver.getInputStream(uri);

10. 怎么让在启动一个Activity是就启动一个service?

在activity的onCreate()方法里面添加 startService()方法;

11. 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?

是可以的。在激活一个新的activity时候, 给intent设置flag

Intent的flag添加FLAG_ACTIVITY_NEW_TASK singleinstance 单独的任务栈

这个被激活的activity就会在新的task栈里面…

Intent intent = new Intent(A.this,B.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

12. Activity怎么和service绑定,怎么在activity中启动自己对应的service?

startService() 一旦被创建 调用着无关 没法使用service里面的方法

bindService () 把service 与调用者绑定 ,如果调用者被销毁, service会销毁

bindService() 我们可以使用service 里面的方法

bindService(). 让activity能够访问到 service里面的方法

构建一个intent对象,

Intent service = new Intent(this,MyService.class);

通过bindService的方法去启动一个服务,

bindService(intent, new MyConn(), BIND_AUTO_CREATE);

ServiceConnection 对象(重写onServiceConnected和OnServiceDisconnected方法) 和BIND_AUTO_CREATE.

private class myconn implements ServiceConnection

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注

新西兰教育联盟专家谈梅西大学排名和大学简介
新西兰教育联盟专家介绍新西兰梅西大学教育学院
高职畜牧兽医专业课程的改革与实践_杨慧芳
新西兰教育联盟专家介绍梅西大学在世界排名
新西兰教育联盟专家介绍新西兰惠灵顿维多利亚大学硕士
电子科技大学15年春《会计学原理》在线作业三100分答案
新西兰教育联盟专家介绍新西兰梅西大学硕士专业
新西兰教育联盟专家介绍梅西大学研究生
新西兰教育联盟专家谈奥塔哥大学博士
我是如何帮助学生进入旧金山艺术大学的
新西兰教育联盟专家介绍新西兰梅西大学入学要求
新西兰教育联盟专家介绍新西兰梅西大学怎么样
新西兰教育联盟专家介绍新西兰惠灵顿维多利亚大学的学费
电子科技大学15年春《会计学原理》在线作业一100分答案
新西兰教育联盟专家谈坎特伯雷大学招生
新西兰教育联盟专家谈怀卡托大学排名介绍
新西兰教育联盟专家谈新西兰怀卡托大学排名
新西兰教育联盟专家谈怀卡托大学研究生
新西兰教育联盟专家介绍新西兰梅西大学校区
新西兰教育联盟专家谈新西兰 怀卡托大学
新西兰教育联盟专家介绍梅西大学研究生学位
新西兰教育联盟专家谈梅西大学在世界排名
电厂化学第二周考试题doc
新西兰教育联盟专家谈怀卡托大学入学要求
新西兰教育联盟专家介绍梅西大学研究生学位
电子科技大学15年春《会计学原理》在线作业二100分答案
新西兰教育联盟专家介绍新西兰梅西大学文凭
新西兰教育联盟专家介绍怀卡托大学留学怎么样
新西兰教育联盟专家谈怀卡托大学预科怎么样
兰州大学教学成果奖推荐书

网友关注视频

8.对剪花样_第一课时(二等奖)(冀美版二年级上册)_T515402
化学九年级下册全册同步 人教版 第22集 酸和碱的中和反应(一)
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣.mp4
精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
七年级英语下册 上海牛津版 Unit9
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
外研版英语三起6年级下册(14版)Module3 Unit2
外研版八年级英语下学期 Module3
北师大版小学数学四年级下册第15课小数乘小数一
第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
第8课 对称剪纸_第一课时(二等奖)(沪书画版二年级上册)_T3784187
飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
《空中课堂》二年级下册 数学第一单元第1课时
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
冀教版小学英语五年级下册lesson2教学视频(2)
《小学数学二年级下册》第二单元测试题讲解
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
沪教版牛津小学英语(深圳用) 四年级下册 Unit 12
二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
苏教版二年级下册数学《认识东、南、西、北》