
Activity
Service
Intent
ContentProvider
***1. 请描述下Activity的生命周期。
Activity有三种状态:运行态、暂停态和停止态
当请求一个Activity的时候,首先调用onCreate方法,然后依次调用onStart、onResume方法,此时Activity可被用户看到,处于运行态
--看图说话
2. 如果后台的Activity由于某种原因被系统回收,如何在回收之前保存当前状态。
调用onSaveInstanceState()方法
程序中的某一个Activity A 在运行时,主动或被动的运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。B完成以后又回来找A,这个时候有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被回收的就直接执行onResume(),跳过onCreate()。
3. 如何将一个Activity设置成窗口样式。
在AndroidManifext.xml中Activity定义处添加
android:theme="@android:style/Theme.Dialog" 或
android:theme="@android:style/Theme.Translucent"。
4. 如何退出Activity?如何安全退出已调用多个Activity的Application?
1、抛异常强制退出:
该方法通过抛异常,使程序Force Close。
验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。
2、记录打开的Activity:
每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。
3、发送特定广播:
在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。
4、递归退出
在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。
***5. 请介绍下android大众常用的五种布局。
FrameLayout(框架布局)帧
LinearLayout(线性布局)
AbsoluteLayout(绝对布局)
RelativeLayout(相对布局)
TableLayout(表格布局)
***6. 请介绍下android的数据存储方式。
SharedPreferences方式
文件存储方式
SQLite数据库方式
内容提供器(Content provider)方式
网络存储方式
7。请介绍下ContentProvider是如何实现数据共享的。
通过ContentProvider可以对外提供数据
在其他的应用中可以通过ContentResolver访问对应URI来取到提供的数据
***8。如何启用Service,如何停用Service。
startService-->onStart:与当前应用无关,当前应用结束之后,服务依然运行,必须调用stopService方法来结束服务-->onDestory
bindService-->onBind :与应用相关,一旦应用结束,就会自动调用onUnBind-->onDestory停止Service
***9。注册广
播有几种方式,这些方式有何优缺点?Android引入广播机制的用意。
两种,一种是在Activity中通过Regist方法注册
一种是在配置文件中进行注册
12. 请解释下Android程序运行时权限与文件系统权限的区别。
13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?
可以通过Intent来触发某个浏览器
15. 你如何评价Android系统?优缺点。
优点:开源特性,得到众多厂商支持。软件发展很快。界面UI,系统优化不错。
缺点:版本过多,升级过快。用户体验不一致。
16. android中的动画有哪几类,他们的特点和区别是什么?
两种,一种是Tween动画,一种是Frame动画。
Tween动画:使试图组件移动,旋转,缩放以及产生透明度的变化。
Frame动画:传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
17. 横竖屏切换时activity的生命周期
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。
设置Activity的android:configChanges="orientation"时,切横,竖屏时生命周期只会执行一次。
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用声明周期,只会执行onConfigurationChanged方法。
18.View, surfaceView, GLSurfaceView有什么区别。
答:view是最基础的,必须在UI主线程内更新画面,速度较慢。
SurfaceView 是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快
GLSurfaceView 是SurfaceView的子类,opengl 专用的
19. Android都有哪些XML解析器,都熟练掌握吗?
这里XmlPull、SAX和DOM
20. Activity和Task的启动模式有哪些? 每种含义是什么
有关在AndroidManifest.xml中的android:launchMode定义,主要有standard、singleTop、singleTask和singleInstance,
21、
启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
都是隐式意图
Task:主界面,首先创建一个Task栈, 配置了Main Launcher Activity被启动,作为栈底
从其他跳转过来的Activity在启动它的Activity所在的栈里
22不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?
b页面自己开一个线程
23Android程序与Java程序的区别?并强调了不是虚拟机方面的!
J2EE用于服务端编程 性能 稳定性 安全性
Android 客户端 用户体验
24、
在Android中,怎么节省内存的使用,怎么主动回收内存?
核心:什么占内存
资源池:同类临时对象创建多次
对象在不需要使用的时候不创建
Activity或者Service中的onDestroy方法中
主动释放
25sqlite支持事务
db.beginTr
ansaction();//开始事务
//进行insertdelete update等数据库操作
db.setTransactionSuccessful();//设置事务标记为Successful
db.endTransaction();//提交事务
