Android高级面试题
1.广播的生命周期?
2.两种注册BroadcastReceiver的方法?
3.粘性广播有什么作用?怎么使用?
4.如何控制接收者或者发送方得权限?
5.谈谈对service的理解?
6.service的生命周期?
7.启动service的两种方法?有什么区别?
8.实现进程内与进程间通信是怎么实现的?
9.子线程更新主线程控件,会出现什么异常?
10.怎么解决这种异常?(AsyncTask与Message、Handler、Message Queue、Looper)
11.android中为什么要这么设计?谈谈你的看法?
12.android中的内存管理?
13.android中进程与线程的理解?
14.android中有几种存储 方式?他们各自适用的场合?
15.在使用SQLite时有什么需要注意的地方吗?
16.getWritableDatabase()和getReadableDatabase()两者的区别?
17.SQLite3支持事务吗?如何使用?
18.ContentProvider有什么优点?
19.说说你对Intent与IntentFilter的理解?
安卓intent用法20.显示意图与隐式意图有什么区别?
21.能说出几个系统内置的Intent吗?
22.谈谈android为什么要设计意图?
广播的生命周期是从发送广播开始,到所有接收者都处理完该广播为止。
两种注册BroadcastReceiver的方法是在代码中动态注册和在l文件中静态注册。
3. 粘性广播可以让接收者在注册之后,即使在广播发送之前也能接收到广播。可以通过在Intent中设置FLAG_INCLUDE_STOPPED_PACKAGES标志来发送粘性广播。
4. 可以通过在l文件中设置权限来控制接收者或者发送方的权限。
5. Service是一种可以在后台执行长时间运行操作的组件,没有用户界面。可以通过startService()和bindService()方法启动Service。
6. Service的生命周期包括onCreate()、onStartCommand()、onBind()、onUnbind()和onDestroy()方法。
7. 启动Service的两种方法是startService()和bindService()。startService()方法启动的Servi
ce是独立的,而bindService()方法启动的Service与调用者绑定在一起。
8. 实现进程内与进程间通信可以使用Binder、Messenger、AIDL等方式。
9. 子线程更新主线程控件会出现主线程更新UI的异常,因为Android中UI控件只能在主线程中更新。
10. 可以使用AsyncTask或者Message、Handler、Message Queue、Looper等方式来解决子线程更新主线程控件的异常。
11. Android中的设计是为了提高系统的灵活性和可扩展性,同时也为了提高开发效率和用户体验。
12. Android中的内存管理包括垃圾回收、内存泄漏检测、内存优化等方面。 13. Android中进程是程序的执行实例,线程是进程中的执行单元。
14. Android中有内部存储、外部存储、SharedPreferences、SQLite数据库等存储方式,它们各自适用于不同的场合。
15. 在使用SQLite时需要注意数据库的打开和关闭、SQL注入攻击等问题。 16. getWritableDatabase()方法返回一个可写的数据库对象,getReadableDatabase()方法返回一个可读的数据库对象。
17. SQLite3支持事务,可以使用beginTransaction()、setTransactionSuccessful()和endTransaction()方法来实现。
18. ContentProvider可以让应用程序之间共享数据,提高数据的安全性和可靠性。
19. Intent是一种用于在组件之间传递消息的对象,IntentFilter用于过滤Intent。
20. 显示意图是指明确指定了要启动的组件,而隐式意图是只指定了要启动的组件的一些属性,由系统来匹配合适的组件。
21. 系统内置的Intent包括ACTION_VIEW、ACTION_SEND、ACTION_DIAL等。 22. Android设计意图的目的是为了提高组件之间的灵活性和可扩展性,同时也为了提高开发效率和用户体验。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论