今年金九银十已经过去了一半了,还在找工作的朋友,不妨来看看这些面试题。我将往年与今年Android常见的高频面试全整在这了,里面还有部分答案展现出来了,提供给大家参考,文末可以查看到所有答案文档,希望能对大家有所帮助。
一丶Android常问基础面试点
1.四大组件的生命周期和简单用法
1)Activity
:
onCreate()
->onStart()
->onResume()
->onPause()
->onStop()
->onDestory()
onCreate()
:为 Activity 设置布局,此时界面还不可见;
onStart()
: Activity 可见但还不能与用户交互,不能获得焦点
onRestart()
: 重新启动 Activity 时被回调
onResume():
Activity 可见且可与用户进行交互
onPause():
当前 Activity 暂停,不可与用户交互,但还可见。在新 Activity 启动前被系统调用保存现有的 Activity
中的持久数据、停止动画等。
onStop()
: 当 Activity 被新的 Activity 覆盖不可见时被系统调用
onDestory()
: 当 Activity 被系统销毁杀掉或是由于内存不足时调用
2)Service
a) onBind
方式绑定的:onCreate
->onBind
->onUnBind
->onDestory
(不管调用 bindService
几次,onCreate 只会调用一次,onStart 不会被调用,建立连接后,service 会一直运行,直到调用
unBindService 或是之前调用的 bindService 的 Context 不存在了,系统会自动停止 Service,对
应的 onDestory 会被调用)
b)startService
启动的:onCreate
->onStartCommand
->onDestory
(start
多次,onCreate
只会被
调用一次,onStart
会调用多次,该service
会在后台运行,直至被调用stopService
或是stopSelf
)
c) 又被启动又被绑定的服务,不管如何调用 onCreate()
只被调用一次,startService
调用多少
次,onStart
就会被调用多少次,而 unbindService
不会停止服务,必须调用 stopService
或是
stopSelf 来停止服务。必须 unbindService
和 stopService(stopSelf)
同时都调用了才会停止服
务。
3)BroadcastReceiver
a) 动态注册: 存活周期是在 Context.registerReceiver
和 Context.unregisterReceiver
之间,
BroadcastReceiver
每次收到广播都是使用注册传入的对象处理的。
b) 静态注册: 进程在的情况下,receiver
会正常收到广播,调用 onReceive
方法;生命周期
只存活在onReceive
函数中,此方法结束,BroadcastReceiver
就销毁了。onReceive()
只有十
几秒存活时间,在 onReceive()
内操作超过 10S,就会报 ANR
。进程不存在的情况,广播相应的进程会被拉活,Application.onCreate
会被调用,再调用onReceive
。
4)ContentProvider:
应该和应用的生命周期一样,它属于系统应用,应用启动时,它会跟着初始化,应用关闭或被杀,它会跟着结束。
2 .Activity
之间的通信方式
1)通过 Intent
方式传递参数跳转
2)通过广播方式
3)通过接口回调方式
4)借助类的静态变量或全局变量
5)借助 SharedPreference
或是外部存储,如数据库或本地文件
3.横竖屏切换的时候,Activity
各种情况下的生命周期
1 ) 切 换 横 屏 时 :
onSaveInstanceState
->onPause
->onStop
->onDestory
->onCreate
->onStart
->onRestoreInstanceState
->onResume
2) 切换竖屏时:会打印两次相同的 log
onSaveInstanceState
->onPause
->onStop
->onDestory
->onCreate
->onStart
->onRestoreInstanceState
->onResume
->onSaveInstanceState
->onPause
->onStop
->onDestory
->onCreate
->onStart
->onRestoreInstanceState
->onResume
- 如 果 在
A