1. 什么是activity?
四大组件之一,一般一个用户交互界面对应一个activity
setcontentview() 要显示的布局
activity 是context的子类,同时实现了和 可以处理与窗体用户交互的事件。
开发常用的的有fragmentactivitiy,listactivity , preferenceactivity ,tabacitivty等…
如果界面有共同的特点或者功能的时候,还会自己定义一个baseactivity.
进度对话框的显示与销毁
2. 请描述一下activity 生命周期。
生命周期描述的是一个类从创建(new出来)到死亡(垃圾**)的过程中会执行的方法。
在这个过程中会针对不同的生命阶段会调用不同的方法。
activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的**方法,这些**方法包括:oncreate ondestroy onstop onstart onresume onpause
其实这些方法都是两两对应的,oncreate创建与ondestroy销毁;
onstart可见与onstop不可见;onresume可编辑(即焦点)与onpause;
这6个方法是相对应的,那么就只剩下一个onrestart方法了,这个方法在什么时候调用呢?
答案就是:在activity被onstop后,但是没有被ondestroy,在再次启动此activity时就调用onrestart(而不再调用oncreate)方法;
如果被ondestroy了,则是调用oncreate方法。
最后讲自己项目中的经验,比如说乐玩每次进入某个界面的时候都要看到最新的数据,这个刷新列表的操作就放在onstart()的方法里面。这样保证每次用户看到的数据都是最新的。
比如:多****, **来**。 onstop() **, **声音设置为0 , 记录****的位置
onstart() 根据保存的状态恢复现场。
在读文档的时候还发现 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,然后重新加载。
2、设置activity的android:configchanges="orientation|keyboardhidden|screensize"时,切屏不会重新调用各个生命周期,只会执行onconfigurationchanged方法。
游戏开发中, 屏幕的朝向都是写死的。
5. 如何将一个activity设置成窗口的样式。
可以自定义一个activity的样式。
android:theme="@android:style/"
6. 你后台的activity被系统**怎么办?如果后台的activity由于某原因被系统**了,如何在被系统**之前保存当前状态?
除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统**,一个activity越处于栈底,被**的可能性越大。
protectedvoid ons**einstancestate(bundle outstate) .start();
特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,让service在另外的进程中执行
9. 两个activity之间怎么传递数据?
基本数据类型可以通过。 intent 传递数据
value)
value)
/ 通过intent putextra 方法基本数据类型都传递
key","value");
key","value")
bundle bundle = new bundle();
value);
application 全局里面存放对象 ,自己去实现自己的application的这个类,基础系统的application , 每个activity都可以取到。
让对象实现 implements serializable 接口把对象存放到文件上。
让类实现serializable 接口,然后可以通过 objectoutputstream对象输出流
file file = new file("c:\"
fileoutputstream fos = new fileoutputstream(file);
objectoutputstream oos = new objectoutputstream(fos);
student stu = new student();
从文件中把对象读出来
objectinputstream ois = new objectinputstream(arg0);
student stu1 = student)
文件/网络
//大**的传递。
10. 怎么让在启动一个activity是就启动一个service?
在activity的oncreate()方法里面 startservice();
Android面试题 笔记
一般而言会考考你的j a和c c 方面的知识!j a知识点包括 接口与抽象的使用及区别,多线程,socket基础,集合类,也有个别公司考察定义。c c 知识点包括 指针的移动,排序算法,链表,有时还会有二叉树的遍历或图的遍历。一 activity的生命周期,两个activity之间跳转时必然会执行的...
Android面试题 笔记汇总
学习 好资料。一般而言会考考你的j a和c c 方面的知识!j a知识点包括 接口与抽象的使用及区别,多线程,socket基础,集合类,也有个别公司考察定义。c c 知识点包括 指针的移动,排序算法,链表,有时还会有二叉树的遍历或图的遍历。一 activity的生命周期,两个activity之间跳转...
2019面试题
1 北京市轨道交通在上下班高峰期运力不足,采取高峰浮动票价,你怎么看?答案要点 1 北京市轨道交通的现状。目前北京市地铁上下班高峰期间,站内及车厢内人满为患,过度拥挤,环境很差,且存在较大安全隐患 2 客观评价采取高峰浮动票价政策的现实意义。从政策出台的出发点上而言,该政策可以缓解北京轨道交通的运能...