Anadroid 面试题

来源:互联网 发布:js select 不可编辑 编辑:程序博客网 时间:2024/06/05 01:05

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

创建 onCreate -  启动onStart– 开始 onResume– 暂停 onPause– 结束 onStop– 销毁onDestroy

 

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

除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.

 

3.service是否在main thread中执行, service里面是否能执行耗时的操作?

 

如果没有显示的指定service所运行的进程, Service和activity是运行在当前app所在进程的main thread(UI主线程)里面  

service里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )

4. 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?

在激活一个新的activity时候, 给intent设置flag

Intent的flag添加FLAG_ACTIVITY_NEW_TASK singleinstance  单独的任务栈

   这个被激活的activity就会在新的task栈里面

5. Activity怎么和service绑定,怎么在activity中启动自己对应的service?

bindService () 把service 与调用者绑定 ,如果调用者被销毁, service会销毁

通过bindService的方法去启动一个服务,

6.什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?

 

Service是运行在后台的android组件,没有用户界面,不能与用户交互,可以运行在自己的进程,也可以运行在其他应用程序的上下文里。

 

当用Context.startService()来启动时,Service的生命周期依次为:

oncreate——>onStartCommand——>onDestroy

 

当用Context.bindService()启动时:

onStart——>onBind——>onUnbind——>onDestroy

 

停用Service使用Context.stopService

 

7.什么是IntentService?有何优点?

普通的service ,默认运行在ui main 主线程带有异步处理的service类,

Acitivity的进程,当处理Intent的时候,会产生一个对应的Service

处理耗时的操作,

8. 什么时候使用Service?

当需要创建在后台运行的程序的时候(主进程不能进行耗时操作),就要使用到Service。

9. 请描述一下Intent 和 Intent Filter。

 

Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,Intent filter: 可以理解为邮局或者是一个信笺的分拣系统

10. 说说Activity,Intent,Service是什么关系 。

intentactivityservice的桥梁,activity主要操作显示界面,service在后台运行

 

11.请描述一下Broadcast Receiver

有序广播 无序广播

sendOrderedBroadcast 

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

把自己的数据通过uri的形式共享出去

android  系统下 不同程序 数据默认是不能共享访问

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

文件 数据库 sqlite  网络SharedPreference

14. 为什么要用ContentProvider?它和sql的实现上有什么差别?

屏蔽数据存储的细节,对用户透明,contentprovider 还可以去增删改查本地文件. xml文件的读取,更改,网络数据读取更改

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

    FrameLayout(帧布局),LinearLayout (线性布局),RelativeLayout(相对布局),TableLayout(表格布局)

 

0 0
原创粉丝点击