Android 面试题及知识点

Activity

四大组件之一,通常一个用户交互界面对应一个Activity。 Activity 是Context的子类,同时实现了window.callback和 keyevent.callback,可以处理与窗体用户交互的事件。常见的 Activity 类型有 FragmentActivitiy,ListActivity,TabAcitivty 等。如果界面有共同的特点或者功能的时候,还会自己定义一个 BaseActivity。


请描述一下Activity的生命周期

Activity 从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate、 onStart 、onResume、onPause 、onStop、 onDestroy。其实这些方法都是两两对应的,onCreate 创建与 onDestroy 销毁;onStart 可见与 onStop 不可见;onResume 可编辑(即焦点)与 onPause;这 6个方法是相对应的,那么就只剩下一个 onRestart 方法了,它是在在 Activity 被 onStop 后,但是没有被 onDestroy,在再次启动此 Activity 时就调用 onRestart(而不再调用 onCreate)方法;如果被 onDestroy 了,则是调用 onCreate 方法。


两个Activity之间跳转必然会执行哪几个方法

一般情况下比如说有两个 activity,分别叫 A,B,当在 A 里面激活 B 组件的时候, A 会调用 onPause()方法,然后 B 调用onCreate()、onStart()、onResume()。这个时候 B 覆盖了窗体, A 会调用 onStop()方法.。如果 B 是个透明的,或者是对话框的样式, 就不会调用 A 的onStop()方法。


Activity横竖屏切换时的生命周期

此时的生命周期跟清单文件里的配置有关系。
  1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期默认首先销毁当前 Activity,然后重新加载。当横竖屏切换时先执行 onPause/onStop 方法,然后是onCreate、onStart、onResume。
  2、设置 Activity 的android:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法。
  3、通常在游戏开发, 屏幕的朝向都是写死的。

你可能感兴趣的:(Android 面试题及知识点)