在Android面试中,掌握Activity的生命周期是至关重要的。Activity的生命周期包括了六个主要的方法:onCreate()、onStart()、onResume()、onPause()、onStop()和onDestroy()。当一个新的Activity启动时,系统会按照onCreate() -> onStart() -> onResume()的顺序调用这些方法。而在当前Activity被另一个Activity覆盖时,会依次调用onPause() -> onStop(),最后当Activity完全退出或者系统需要回收资源时,会调用onDestroy()。 1. 启动Activity有多种方式,最常见的就是通过Intent实例化并指定目标Activity的类名,如`Intent intent = new Intent(this, xxx.class);`。另一种方式是使用Intent的ACTION,比如`Intent intent = new Intent(Intent.ACTION_INSERT, getIntent().getData());`,这样可以调用系统预定义的行为,比如发送短信。 2. 从应用图标启动和从其他Activity跳转进入主界面的区别在于,根据AndroidManifest.xml中的配置,Activity可能会被放入不同的任务栈(task stack)。如果希望新启动的Activity在新的任务栈中,可以在Intent中设置flag_new_task标志。 3. 想在启动Activity时同时启动Service,可以直接在Activity的onCreate()方法中写入启动Service的代码。若要将Activity和Service绑定,可以使用bindService()方法,这种方式使得Activity和Service之间的通信更为紧密。 4. 两个Activity间的数据传递通常通过Intent来实现,Intent可以携带各种类型的数据,如基本类型、Parcelable对象或Serializable对象。 5. 当后台Activity可能被系统回收时,可以重写onSaveInstanceState(Bundle outState)方法,将重要数据保存到Bundle中。如果Activity被回收后重建,onCreate()或onRestoreInstanceState(Bundle savedInstanceState)方法会被调用,可以通过savedInstanceState恢复之前保存的状态。 6. 退出Activity通常的做法是调用finish()方法,这会将当前Activity从任务栈中移除,返回到上一个Activity。对于包含多个Activity的应用,若要全局退出,需要在每个Activity中处理返回键事件,并在适当的时候调用System.exit(0)。但这种方式不推荐,因为它不遵循Android的正常生命周期管理,可能导致应用失去正常的后台行为和用户体验。更推荐的做法是通过监听栈顶Activity的变化,当栈顶Activity被关闭时,整个应用视为退出。 以上知识点只是Android面试中的一部分,面试者还需要掌握Intent的其他用法,如FLAG FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_NEW_TASK等,以及BroadcastReceiver、ContentProvider、Handler、多线程、内存管理、性能优化、Android组件间的通信、网络编程、数据库操作等方面的知识。此外,对Android架构设计模式的理解,如MVP、MVVM,以及Android Jetpack组件的使用经验,也是面试中常被问及的内容。
剩余21页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助