Android面试题

1.请描述下Activity的生命周期。

必调用的三个方法:onCreate()–>onStart()–>onResume(),用AAA表示

(1)父Activity启动子Activity,子Actvity退出,父Activity调用顺序如下

AAA–>onFreeze()–>onPause()–>onStop()–>onRestart()–>onStart(),onResume()…

(2)用户点击Home,Actvity调用顺序如下

AAA–>onFreeze()–>onPause()–>onStop()—Maybe–>onDestroy()–Maybe

(3)调用finish(),Activity调用顺序如下

AAA–>onPause()–>onStop()–>onDestroy()

(4)在Activity上显示dialog,Activity调用顺序如下

AAA

(5)在父Activity上显示透明的或非全屏的activity,Activity调用顺序如下

AAA–>onFreeze()–>onPause()

(6)设备进入睡眠状态,Activity调用顺序如下

AAA–>onFreeze()–>onPause()

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

onSaveInstanceState()

当你的程序中某一个ActivityA在运行时,主动或被动地运行另一个新的ActivityB,这个时候A会执行onSaveInstanceState()。B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。

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

在AndroidManifest.xml中定义Activity的地方一句话android:theme="@android:style/Theme.Dialog"或android:theme="@android:style/Theme.Translucent"就变成半透明的

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

对于单一Activity的应用来说,退出很简单,直接finish()即可。

当然,也可以用killProcess()和System.exit()这样的方法。

http://blog.csdn.net/debug2/archive/2011/02/18/6193644.aspx

5.请介绍下Android中常用的五种布局。

FrameLayout(框架布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)

6.请介绍下Android的数据存储方式。

一.SharedPreferences方式

二.文件存储方式

三.SQLite数据库方式

四.内容提供器(Contentprovider)方式

五.网络存储方式

7.请介绍下ContentProvider是如何实现数据共享的。

创建一个属于你自己的Contentprovider或者将你的数据添加到一个已经存在的Contentprovider中,前提是有相同数据类型并且有写入Contentprovider的权限。

8.如何启用Service,如何停用Service。

9.注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。

10.请解释下在单线程模型中Message、Handler、MessageQueue、Looper之间的关系。

11.AIDL的全称是什么?如何工作?能处理哪些类型的数据?

12.请解释下Android程序运行时权限与文件系统权限的区别。

13.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。

14.有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明(0xffffffff)像素点的透明度调整为50%。

15.你如何评价Android系统?优缺点。

相关推荐