【Android面试题解析】 在Android开发中,面试通常会涵盖一系列关键知识点,其中包括对四大组件的理解,特别是Activity的深入理解。以下是对相关面试题的详细解答: 1. **什么是Activity?** Activity是Android四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之一,它代表用户界面的一个实例。通过`setContentView()`方法可以设置要显示的布局。Activity是Context的子类,同时也实现了Window.Callback和KeyEvent.Callback接口,因此它可以处理窗体用户交互的事件。在实际开发中,我们经常使用如FragmentActivity、ListActivity、PreferenceActivity、TabActivity等特定类型的Activity,甚至自定义BaseActivity以复用代码。 2. **Activity的生命周期是什么样的?** Activity的生命周期包括创建(onCreate())、启动(onStart())、恢复(onResume())、暂停(onPause())、停止(onStop())、销毁(onDestroy())等状态。此外,还有onRestart()方法,当Activity从onStop()状态恢复时调用,而不是从onDestroy()。在不同状态转换时,系统会回调相应的生命周期方法。例如,新Activity启动时,当前Activity会调用onPause(),新Activity依次调用onCreate()、onStart()、onResume(),当前Activity则调用onStop()。如果新Activity是透明或对话框样式,当前Activity不会调用onStop()。 3. **两个Activity之间的跳转涉及哪些生命周期方法?** 当从Activity A启动Activity B时,A会先调用onPause(),然后B依次调用onCreate()、onStart()、onResume()。A调用onStop()是因为B覆盖了A。如果B是透明或对话框样式,A不会调用onStop()。 4. **横竖屏切换时Activity的生命周期如何变化?** 默认情况下,不设置`android:configChanges`时,屏幕旋转会导致Activity重新创建。但若设置`android:configChanges="orientation|keyboardHidden|screenSize"`,Activity将在onConfigurationChanged()方法中处理屏幕方向改变,不会重新创建。 5. **如何将Activity设置为窗口样式?** 可以在AndroidManifest.xml中为Activity指定样式,如`android:theme="@android:style/Theme.Dialog"`,使Activity看起来像一个对话框。 6. **如何处理Activity被系统回收的情况?** 当后台Activity可能被回收时,需要在onSaveInstanceState(Bundle outState)方法中保存重要状态,并在onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle savedInstanceState)中恢复。例如,可以通过outState.putLong()保存数据,然后在onCreate()中检查savedInstanceState是否为空,如果不为空,则从中恢复数据。 以上只是对Android面试中常见问题的基本解析,实际面试可能会涉及更多深度和广度的知识点,如Intent、IntentFilter、BroadcastReceiver、Service、ContentProvider的使用,以及内存管理、性能优化、多线程、网络编程、数据库操作、权限管理、动画和图形绘制等方面的内容。在准备面试时,全面了解和掌握这些知识点是非常必要的。
剩余26页未读,继续阅读
- 粉丝: 663
- 资源: 36
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助