该文章参考了Carson_Ho(https://juejin.im/post/5a4ae66d518825390e348aac)博主的文章,如有侵权请通知删除
在安卓面试过程中经常会被问到如何从一个Activity中退出整个App的问题,下面我就总结一下如何回答该问题。
重点:退出整个App有两个步骤,第一步骤是关闭所有的Activity,第二步骤是退出这个App进程。
第一种:创建存放所有Activity的集合进行遍历退出
1.写一个基类BaseActivity,让你所创建的Activity都继承与它,在该基类中定义一个LinkedList(因为
应用场景是增删次数多,所以此处用链表),在每个onCreate方法中将自身的Activity添加add进该链
表中,其次在每个onDestory中再删除remove自身的Activity即可,然后再BaseActivity中些一个清空删
除所有Activity并退出进程的方法,当你想退出整个App的时候调用这个方法即可。
2.写一个Application的子类让它在onActivityCreated方法中添加每一个activity到链表中,然后在其中
写一个退出App的方法,当想退出的时候,调用该方法即可,记得在Manifest文件中添加这个
application。
优点:应用场景广泛:兼顾单 / 多任务栈 & 多启动模式的情况
缺点:需要 Activity 经历正常的生命周期,即创建时调用onCreate(),结束