Android面试必备:Activity、Service与BroadcastReceiver解析
需积分: 10 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系统运作和编写高效应用程序的关键。
2018-02-28 上传
110 浏览量
2021-09-11 上传
2021-03-04 上传
点击了解资源详情
2018-03-26 上传
2019-02-15 上传
2021-11-27 上传
jz07306
- 粉丝: 1
- 资源: 8
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常