传智播客Android面试题74道.pdf
Android是一个以Linux为核心的操作系统,主要被用于移动设备,例如智能手机和平板电脑。Android应用是由多个组件构成的,其中最核心的组件之一就是Activity。Activity是用户界面的一个基本的窗口,它用于与用户进行交云。每个Activity都是一个独立的屏幕,可以完成用户的一个相对独立的操作。Activity具有生命周期,其状态在不同的时刻会转换,这些状态包括创建、销毁、暂停、恢复等,并伴随着生命周期回调方法的调用,比如onCreate(), onDestory(), onStart(), onStop(), onResume(), onPause()等。 当一个Activity被另一个Activity启动时,前者会经历暂停或停止的状态,而被启动的Activity则会经历创建和启动的过程。在Android系统中,Activity的跳转通常需要设置Intent,它定义了不同Activity之间的启动条件。在屏幕方向切换或者配置更改时,Activity的生命周期会受到影响,可能会重新创建和启动。例如,在横竖屏切换时,系统默认会销毁当前的Activity,然后重新创建一个新的Activity实例。不过,开发者可以通过在AndroidManifest.xml文件中设置Activity的android:configChanges属性来指定哪些配置更改不会导致Activity重新创建,而是调用onConfigurationChanged()方法。 另外,Activity在被系统回收之前需要保存当前状态。Android系统可能会因为资源限制而回收后台的Activity,为了防止用户数据丢失,开发者可以在Activity的onSaveInstanceState(Bundle savedInstanceState)方法中保存必要的状态信息,当Activity重新创建时,可以通过onCreate()或onRestoreInstanceState()方法恢复这些状态。 在Activity中,可以使用setContentView()方法来设置Activity所要显示的布局。同时,Activity也是一个Context类的子类,因此它可以访问资源、启动其他Activity、访问系统服务等。Activity也实现了Window.Callback和KeyEvent.Callback接口,这意味着它能够处理窗体事件和键盘事件。 在Android开发中,为了避免为每个界面编写重复的代码,常会用到一些自定义的Activity基类,比如ListActivity、PreferenceActivity、TabActivity等。这些基类提供了通用的功能,开发者可以在这些基类的基础上进行扩展,创建特定的Activity。 此外,还有其他一些知识点,例如如何处理Activity中的按钮点击事件(setOnClickListener),以及如何在Activity中使用对话框(Dialog)。对话框在Android中属于Activity的一部分,可以用来显示进度信息或收集用户输入。 对于多媒体播放,在Activity中可以使用MediaPlayer类来控制音乐、视频的播放,同时在Activity的生命周期中适当管理MediaPlayer实例的暂停和播放,例如在Activity的onStop()方法中暂停播放,在onStart()中恢复播放,以及在onDestroy()中释放资源。 在实际开发中,开发者还需了解Activity的其他生命周期方法,如onPostCreate()和onPostResume(),尽管它们不常在开发中直接使用,但了解它们有助于对Activity的工作原理有更深入的认识。 通过上述介绍,可以看出Activity作为Android应用开发中的核心组件,其生命周期管理对于应用的性能和用户体验至关重要。开发者应当熟练掌握Activity相关的知识,以便在实际开发中创建稳定、高效的应用程序。
剩余29页未读,继续阅读
- 飘零雪花2018-11-02非常不错,面试很好用
- Ordosbxy2018-09-27非常实用,挑选了10道题面试用!
- 粉丝: 3
- 资源: 67
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 金山PDF教育版编辑器
- 基于springboot+element的校园服务平台源代码项目包含全套技术资料.zip
- 自动化应用驱动的容器弹性管理平台解决方案
- 各种排序算法 Python 实现的源代码
- BlurAdmin 是一款使用 AngularJs + Bootstrap实现的单页管理端模版,视觉冲击极强的管理后台,各种动画效果
- 基于JSP+Servlet的网上书店系统源代码项目包含全套技术资料.zip
- GGJGJGJGGDGGDGG
- 基于SpringBoot的毕业设计选题系统源代码项目包含全套技术资料.zip
- Springboot + mybatis-plus + layui 实现的博客系统源代码全套技术资料.zip
- 智慧农场小程序源代码全套技术资料.zip