搜索
您的当前位置:首页正文

Android面试相关

来源:吉趣旅游网

Android 的四⼤组件有哪些?

Activity、Service、ContentProvider、BroadcastReceiver。


请描述下 Activity 的⽣命周期?

onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart。

程序横竖屏切换,Activity的生命周期:

1.AndroidManifest没有设置configChanges属性

竖屏启动:

onCreate -->onStart-->onResume

切换横屏:

onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate-->onStart -->

onRestoreInstanceState-->onResume -->onPause -->onStop -->onDestroy       

(Android 6.0 Android 7.0 Android 8.0)

横屏启动:

onCreate -->onStart-->onResume

切换竖屏:

onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate-->onStart -->

onRestoreInstanceState-->onResume -->onPause -->onStop -->onDestroy 

总结:没有设置configChanges属性Android 6.0 7.0 8.0 系统手机 表现都是一样的,当前的界面调用onSaveInstanceState走一遍流程,然后重启调用onRestoreInstanceState再走一遍完整流程,最终destory。

2.AndroidManifest设置了configChanges   android:configChanges="orientation"

竖屏启动

onCreate -->onStart-->onResume

切换横屏

onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate-->onStart -->

onRestoreInstanceState-->onResume -->onPause -->onStop -->onDestroy        

(Android 6.0)

onConfigurationChanged-->onPause -->onSaveInstanceState -->onStop -->onDestroy -->

onCreate-->onStart -->onRestoreInstanceState-->onResume -->onPause -->onStop -->onDestroy        

(Android 7.0)

 onConfigurationChanged    

(Android 8.0)

 横屏启动

onCreate -->onStart-->onResume

切换竖屏:

onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate-->onStart -->

onRestoreInstanceState--> onResume -->onPause -->onStop -->onDestroy        

(Android 6.0 )  

onConfigurationChanged-->onPause -->onSaveInstanceState -->onStop -->onDestroy -->

onCreate-->onStart -->onRestoreInstanceState-->onResume -->onPause -->onStop -->onDestroy        

(Android 7.0)

onConfigurationChanged    

(Android 8.0)

总结:设置了configChanges属性为orientation之后,Android6.0 同没有设置configChanges情况相同,完整的走完了两个生命周期,调用了onSaveInstanceState和onRestoreInstanceState方法;Android 7.0则会先回调onConfigurationChanged方法,剩下的流程跟Android 6.0 保持一致;Android 8.0 系统更是简单,
只是回调了onConfigurationChanged方法,并没有走Activity的生命周期方法。

3.AndroidManifest设置了configChanges   

android:configChanges="orientation|keyboardHidden|screenSize" 

竖(横)屏启动:onCreate -->onStart-->onResume
切换横(竖)屏:onConfigurationChanged   (Android 6.0 Android 7.0 Android 8.0)

总结:设置android:configChanges="orientation|keyboardHidden|screenSize"  则都不会调用Activity的其他生命周期方法,只会调用onConfigurationChanged方法。

     

如何退出 Activity?如何安全退出已调⽤多个 Activity 的 Application?

调⽤ Activity 的 finish ⽅法可以

因篇幅问题不能全部显示,请点此查看更多更全内容

Top