Android面试必备:Activity、Service与BroadcastReceiver解析

需积分: 10 3 下载量 67 浏览量 更新于2024-07-19 收藏 3.05MB PDF 举报
"Android面试题答案精编" 这篇资料提供了针对Android开发人员面试的常见问题和答案,涵盖了Android系统的核心组件:Activity、Service和BroadcastReceiver。以下是对这些知识点的详细解释: 一、Activity 1. Activity 是Android应用程序的基本组件,用于展示用户界面并与用户交互。 2. Activity生命周期 包括`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()`等方法,它们代表了Activity的不同状态,开发者需要根据这些方法来管理Activity的状态和资源。 3. Activity类型 包括FragmentActivity、ListActivity和TabActivity等,它们是Activity的子类,提供特定的功能,如FragmentActivity支持Fragment的使用。 4. 保存Activity状态 可以通过在`onSaveInstanceState(Bundle outState)`中保存关键数据,然后在`onCreate(Bundle savedInstanceState)`或`onRestoreInstanceState(Bundle savedInstanceState)`中恢复。 5. 跳转执行方法 通常会经历`onPause()`, `onStop()`, `onDestroy()`(可能不执行)在前一个Activity,然后在新Activity中经历`onCreate()`, `onStart()`, `onResume()`。 6. 横竖屏切换 Activity会被重建,可以通过配置文件指定不重建或保留状态。 7. 设置窗口样式 使用`android:theme`属性,例如`@android:style/Theme.Dialog`可以让Activity看起来像对话框。 8. 退出Activity 使用`finish()`,多Activity应用中安全退出需管理Activity栈,确保正确销毁所有不再需要的Activity。 9. 启动模式 包括标准模式、单实例(singletask)、单栈顶(singletop)等。singletop适合书签,因为它避免创建新的Activity实例,但singletask会清除整个任务栈,可能导致不期望的结果。 10. Context, Activity, Application的区别 Context是Android系统的基础,提供与系统的交互;Activity是具有用户界面的Context;Application是整个应用的全局上下文。 二、Service 1. Service执行 Service通常在主线程运行,不适合执行耗时操作,否则会阻塞UI。 2. 启动Service 通过`startService(Intent)`,绑定Service通过`bindService(Intent, ServiceConnection, int)`。 3. Service生命周期 主要包括`onCreate()`, `onStartCommand()`, `onBind()`, `onUnbind()`, `onDestroy()`,开发者需要根据生命周期管理服务。 4. IntentService 是一个简化服务管理的服务,每个请求都在单独的工作线程中处理,完成自动停止服务。 5. Activity, Intent, Service关系 Intent是连接Activity和服务的桥梁,用于启动、绑定和传递数据。 6. Service与主线程 默认情况下在同一线程,可通过IntentService或自定义工作线程解决。 7. Service中弹吐司 可以,但不建议,因为可能会影响用户体验。 8. Service的生命周期和停止 描述了Service的启动和停止方法,如`startService()`和`stopService()`,以及如何在适当时候停止服务。 9. onStartCommand()网络操作 不推荐,应使用工作线程或IntentService。 三、BroadcastReceiver 1. BroadcastReceiver 是接收系统或应用广播事件的组件,用于响应系统或自定义广播消息。 2. 注册方式 可以在AndroidManifest.xml静态注册,也可以在代码中动态注册,两者在生命周期和作用范围上有所不同。 以上就是Android面试中关于Activity、Service和BroadcastReceiver常见问题的解析,这些知识点是理解Android系统运作和编写高效应用程序的关键。