Android面试题整理(1)
1、Activity的生命周期
onCreate(Bundle saveInstanceState):创建activity时调用。
onStart():activity可见时调用
onResume():activity与用户交互时调用
onRestart():当一个activity再次启动之前调用该方法
onPause():当前暂停、或调用另一个activity之前调用该方法。
onStop():当前activity变为不可见时调用该方法
onDestory():当前activity被销毁之前调用该方法
2、横竖切换时候Activity的生命周期
不设置activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏
时会执行一次,切竖屏时会执行两次
设置activity的android:configChanges="orientation"时,切屏会重新调用各个生命周期
但切横屏与竖屏都之会执行一次
设置activity的android:configChanges="orientation|keybordHidden"时,切屏不会
重新调用各个生命周期,只会执行onConfigurationChanged方法
3、如何将一个activity设置成窗口模式。
将activity的属性android:theme="@style/Theme.Dialog"
4、当后台的activity被系统回收怎么办
系统会帮我们记录下回收前activity的状态,再次调用被回收的activity就要重新调用
onCreate()方法,不同直接启动的是这次onCreate()里是带参数的savedInstanceSate;一般
可以判断其是否为null,不为null时可以使用它来恢复到回收前的状态。
5、如何退出activity?如何安全退出已调用的多个activity的application
用finish()方法退出activity
在结束应用时,发送一个特定的广播,相对应的activity收到广播后,关闭即可。
6、后台的activity由于某种原因被系统回收了,如何在被系统回收之前保存当前的状态
被回收之前调用的onSaveInstanceState()方法保存当前的状态
7、怎么在启动一个activity时就启动一个service
将启动的service的语句放在onCreate()方法中。
8、Activity怎么和Service绑定,怎么在activity中启动自己对应的Service
Activity能进行绑定得益于Service的接口。在实现Service必须实现onBind方法
Service和Activity的连接可以用ServiceConnection来实现。在实现一个新的ServiceConnection
,重写onServiceConnected和onServiceDisconnected方法,一旦连接建立,就能得到Service实例的引用。
执行绑定,调用bindServcie方法,传入一个选择了要绑定的Service的Intent和一个实现了的ServiceConnection实例
9、什么是Service以及描述下它的生命周期
Service是运行在后台的android组件,没有用户界面,不能与用户交互,可以运行在自己的进程,也可以运行在其他应用程序的上下
文里。
Service随着启动形式的不同,其生命周期稍有差别。当用Context.startService()来启动时,Service的生命周期依次为:oncreate——>
onStartCommand——>onDestroy 当用Context.bindService()启动时:onStart——>onBind——>onUnbind——>onDestroy
10、Service有哪些启动方法,有什么区别,怎么停用Service?
Service启动方式有两种;一是Context.startService和Context.bindService。
区别是通过startService启动时Service组件和应用程序没多大的联系;当用访问者启动之后,如果访问者不主动关闭,Service就不会关闭,Service组件之间
因为没什么关联,所以Service也不能和应用程序进行数据交互。而通过bindService进行绑定时,应用程序可以通过ServiceConnection进行数据交互。在实现Service
时重写的onBind方法中,其返回的对象会传给ServiceConnection对象的onServiceConnected(ComponentName name, IBinder service)中的service参数;也就是说获取
了serivce这个参数就得到了Serivce组件返回的值。Context.bindService(Intent intent,ServiceConnection conn,int flag)其中只要与Service连接成功
conn就会调用其onServiceConnected方法
停用Service使用Context.stopService
11、不用Service,B页面为音乐播放,从A跳到B,再返回,如何使音乐继续播放?
A使用startActivityForResult方法开启B,B类结束时调用finish;A类的Intent有一个子Activity结束事件onActivityResult,在这个事件里继续播放音乐。
12、什么是IntentService?有何有点?
IntentService也是一个Service,是Service的子类;
IntentService和Service有所不同,通过Looper和Thread来解决标准Service中处理逻辑的阻塞的问题
优点:Activity的进程,当处理Intent的时候,会产生一个对应的Service,Android的进程处理器现在会尽可能的不kill掉你。
13、什么时候使用Service?
比如播放多媒体的时候用户启动了其他的Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,在或者在后台记录你地理位置的改变等等
14、说说Activity、Intent、Service是什么关系
一个Activity通常是一个单独的屏幕,每一个Activity都被实现为一个单独的类,这些类都是从Activity基类中继承来的,Activity类显示有视图控件组成的用户接口
,并对视图控件的事件做出响应。
Intent的调用是用来进行架构屏幕之间的切换的。Intent是描述应用想要做什么。Intent数据结果中最重要的部分是动作和动作对应的数据,一个动作对应一个动作数据。Android
Service是运行在后台的代码,不能与用户交互,可以运行在自己的进程,也可以运行在其他应用程序的上下文里。需要通过某一个Activity或其他Context对象来调用。 Activity\
跳转到Activity,Activtiy启动Service,Service打开Activity都需要Intent表明跳转的意图,以及传递参数,Intent是这些组件间信号传递的传承者。
15、请介绍ContentProvider是如何实现数据共享的
ContentProvider是通过提供Uri来实现数据共享
16、请介绍下android的数据存储方式
Android提供了5种方式存储数据
使用SharedPreferences存储数据;
文件存储数据;
SQLite数据库存储数据
使用ContentProvider存储数据;
网络存储数据
17、android中常用的五种布局
线性布局LineayLayout、相对布局RelativeLayout、帧布局FrameLayout、表格布局TablElAYOUT,绝对布局AbsoluteLayout。
18、谈谈UI中,Padding和Margin有什么区别?
Padding是文字相对于边框,而Margin是边框相对于父窗体
19、请解释一下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
子线程借用主线程里面的handler发送一条消息,这个消息会被线程放入消息队列里面,也就是message queue,主线程里面有一个轮询器looper会发现
消息队列里面有一条消息时,会调用handler消息处理执行handlermessage的方法去处理这个消息,这个handlemessage的方法可以更新ui控件内容了
20、AIDL的全称是什么?如何工作?能处理哪些类型的数据?
ADIL是一种接口定义语言,用于约束两个进程之间的通信规则,供编译器生成代码,实现android设备之间的进程通信。
进程之间的通信信息首先会被转换成AIDL协议消息,然后发送给对方,对方受到AIDL协议消息后在转换成相应的对象。AIDL支持类型包括java基础类型和String,List,Map,CharSequence,如果
使用自定类型,必须实现Parcelable接口
Android面试题整理(1)的更多相关文章
- Android面试题整理【转载】
面试宝典(5) http://www.apkbus.com/android-115989-1-1.html 面试的几个回答技巧 http://blog.sina.com.cn/s/blog_ad ...
- 19、android面试题整理(自己给自己充充电吧)
(转载,出处丢失,请原作者原谅,如有意见,私信我我会尽快删除本文) JAVA 1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问 ...
- Android ----------------- 面试题 整理 一
1. XML的解析方式都有哪些? 每一种解析方式的运行流程? 设XML为:<a>a<b>bc<c>c1</c></b></a> ...
- Android面试题整理
1. 请描述下Activity的生命周期. 2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 3. 如何将一个Activity设置成窗口的样 ...
- Android高级工程师面试题整理
这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目.熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率. 主要分为以下几部分: (1)java ...
- Android面试题(文章内容来自他人博客)
腾讯面试题 1.int a = 1; int result = a+++3<<2; 2.int a = 2; int result = (a++ > 2)?(++a):(a+=3); ...
- 【Android进阶】Android面试题目整理与讲解(一)
这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCre ...
- 2017 Android 面试题 [ 基础与细节 ]
2017 Android 面试题 [ 基础与细节 ] 感谢@chuyao抛出的这些问题,平时业务代码写多了,很多基础的东西变得含糊不清了,这次裸辞出来找工作确实没有之前顺利,顺便求上海Android开 ...
- 金9银10,分享几个重要的Android面试题
说一下java多态的理解,以及接继承,和接口的理解 于哥在这里只讲多态,其他自己上网体会 对于多态的定义不同类的对象对统一函数做出不同对的响应或者动作.作用主要是消除类之间的耦合性,灵活性比较强,利于 ...
随机推荐
- XCode里遇到 #include <XXX.h>file not found的解决方案
最近在学习如何在C++里调用Java方法,遇到提示 #include <XXX.h> file not found 的问题.也google了好久都没有找到合适的解决方案. 认真的研究了 ...
- awk的用法(转)
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输 ...
- [LeetCode]题解(python):134-Gas Station
题目来源: https://leetcode.com/problems/gas-station/ 题意分析: 在一个圈子路线里面有N个汽油站,i站的汽油有gas[i]汽油.现在有一辆无限容量的车,它从 ...
- python自学笔记(七)排序与多级排序
一.sorted内置方法 a = [1,2,3,4] 从大到小(翻转) a = sorted(a,reverse = True) #生成新对象,不会原地修改,需要重新赋值 print a --> ...
- Qt Creator needs a compiler set up to build. Configure a compiler in the kit options - Stack Overflow
Qt Creator needs a compiler set up to build. Configure a compiler in the kit options - Stack Overflo ...
- 关于我们_ | 腕表时代watchtimes.com.cn
关于我们_ | 腕表时代watchtimes.com.cn 关于我们 腕表时代是北京兰会时光科技有限公司旗下运营的手表网站.腕表时代于2013年5月17日正式上线.秉承专业.生动.实用 ...
- Objective-c 方法的调用
在书写了类的声明和实现后,应用程序如何去调用它呢? 在Objective-c中,调用方法的简单格式如下: 1⃣ [实例 方法]; 如: [person setAge:32]; 其中 pe ...
- c#程序将excel文件转换成xml文件
要程序你自己去组装去,我只写两个部分,一个是读Excel的部分,然后是写入到xml的1) 从指定的excel读出信息string strConn="provider=Microsoft.Je ...
- C# Best Practices - Accessing and Using Classes
References and Using Do: Take care when defining references References must be one way (or circular ...
- JDBC:Java连接数据库的桥梁
JDBC(Java DataBase Connection),java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成 ...