传智播客武汉校区Android面试题精编

需积分: 10 2 下载量 59 浏览量 更新于2024-07-21 1 收藏 2.31MB PDF 举报
"Android面试题精编第一版,由传智播客武汉校区就业部出品,涵盖Android基础、Activity、Service等核心知识点,旨在帮助Android程序员准备面试。" 本文主要探讨了Android开发中的关键概念和面试常考问题,具体分为Android基础、Activity以及Service三大主题。以下是各部分的详细讲解: 一、Android基础(★★) 1. Activity是Android应用的基本组件,它代表用户可见的屏幕界面,用于与用户交互。 2. Activity的生命周期包括onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()等方法,根据应用状态和用户操作,这些方法会被依次调用。 3. 不同类型的Activity如FragmentActivity、ListActivity和TabActivity在生命周期上的表现略有不同,但基本的生命周期过程是一致的,即创建、启动、运行、暂停、停止和销毁。 4. 为了保存Activity状态,通常使用onSaveInstanceState(Bundle outState)来保存关键数据,并在onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle savedInstanceState)中恢复。 5. 两个Activity之间跳转,会执行onPause()、onStop()(如果被覆盖的Activity返回栈中),onDestroy()(如果系统需要回收资源),然后新Activity执行onCreate()、onStart()和onResume()。 6. 横竖屏切换时,默认情况下Activity会被重建,执行onSaveInstanceState()、onDestroy()、onCreate()、onStart()和onResume()。 7. 通过setTheme()方法可以在AndroidManifest.xml或Activity的onCreate()中改变Activity的样式。 8. 结束Activity可调用finish()方法;安全退出多Activity应用,需在每个Activity的onBackPressed()或适当位置处理反向回退栈,避免内存泄漏。 二、Service(★★) 1. Service不在主线程执行,适合进行后台长时间运行的任务。但不推荐在Service中执行阻塞操作,可能导致ANR(Application Not Responding)。 2. 使用startService(Intent)启动Service,使用bindService(Intent, ServiceConnection, int)绑定Service。启动Service执行一次任务,绑定Service则可以建立连接进行交互。 3. Service生命周期包括onCreate()、onStartCommand(Intent, int, int)、onBind(Intent)、onUnbind(Intent)、onRebind(Intent)和onDestroy()。其中,onStartCommand()负责接收启动请求,onBind()处理绑定请求。 4. IntentService是一种特殊的Service,它在单独的工作线程中处理Intent,完成任务后自动停止,简化了Service的管理。 5. Activity、Intent和Service之间的关系:Intent作为消息载体,可以启动Service或传递数据给Service,Activity可以通过Intent与Service进行通信。 6. 默认情况下,Service与创建它的应用的主线程运行在同一个进程和线程中,但可以通过创建新的工作线程来分离执行。 以上内容涵盖了Android面试中关于Activity和Service的基础知识,是开发者必备的技能点,对于理解Android应用的运行机制和优化具有重要作用。