Android面试题2
1. 请描述下Activity的生命周期。
答:onCreate()Activity第一次加载时调用,用户构建窗体
onStart()Activity能被用户看到时时调用
onResume()Activity能够得到用户焦点时调用
onRestart()Activity第二次被加载时调用,不在调用onCreate()
onPause()Activity在启动另外一个Activity时调用,失去用户焦点是调用
onStop()Activity被第二个Activity完全遮挡住时调用
onDestroy()Activity从栈中取出时调用,也可以说从第二个Activity返回第一个Activity时,会调用第二个Activity的onDestroy(),销毁Activity
2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 答:在系统回收或者用户调用finish方法,都会销毁Activity,此时会调用onDestroy方法,利用onDestroy方法保存Activity状态
3. 如何将一个Activity设置成窗口的样式。
答:在AndriodMinifest.xml文件中配置Activity的属性的主题为android:theme="@android:style/Theme.Dialog"
4. 如何退出Activity?如何安全退出已调用多个Activity的Application?
答:单个的Activity,调用finish、killProcess()、System.exit()方法退出
多个Activity
在2.1之前,可以使用ActivityManager的restartPackage方法。
它可以直接结束整个应用。在使用时需要权限android.permission.RESTART_PACKAGES 在2.2,这个方法失效了。
在2.2添加了一个新的方法,killBackgroundProcesses(),需要权限 android.permission.KILL_BACKGROUND_PROCESSES
5. 请介绍下Android中常用的五种布局。
答:LinearLayout线性布局
RelativeLayout相对位置布局
AbsoluteLayout根据坐标布局
TableLayout表格布局
FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角
6. 请介绍下Android的数据存储方式。
答:SharedPreferences键值对的存储
SQlite数据库存储
Files文件存储
NetWork网络存储
ContentProvider
7. 请介绍下ContentProvider是如何实现数据共享的。
答:ContentProvider负责: 组织应用程序的数据、向其他应用程序提供数据;
ContentResolver负责:获取ContentProvider提供的数据、增删改查数据等
8. 如何启用Service,如何停用Service。
答:启动Service:
Intent intent = new Intent(this,MyService.class);
startService(intent);//启动服务的调用者跟服务没有任何关系,调用者退出跟服务不会


