1.概述
近期,无意中浏览到一款很烂的App的源码(二萌,你懂的),其仿照大多数App都包含的功能,即当用户在主页面按返回键时,关闭当前应用程序,以节省资源。然而,其通过调用finish()方法来结束程序,而且是在public boolean onKeyDown(int keyCode, KeyEvent event)方法中调用,这其实是一个错误的实现方式。众所周知,Activity的生命周期就是那六大函数,finish()是Activity中定义的函数,其被调用后只是销毁当前Activity,而应用程序是从Application中启动执行的,所以Application还是存在的,应该使用System.exit(0)关闭程序。再就是按返回键Activity中有个单独的方法public void onBackPressed() ,所以相关操作直接在这个函数中调用就OK了。
2.相关代码
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish();
System.exit(0);
}