Android中按返回键怎么退出一个用程序
的有关信息介绍如下:重写activty的onkeydown在用户按下返回键的时候调用,所以我们可以通过重写onkeydown的方法实现,还有可能到了MainActivity前面还有其他acitivty存活这,我们需要在onkeydown的时候把所有的activity都结束掉,为了实现这个我们先定义一个BaseActivity,在Oncreate和ondestroy生命周期里存储acitivty的引用
用一个List集合存储存活的acitivity,我们把list作为application成员
写一个MyApp类,作为程序启动的application
public
class
MyApp
extends
Application{
private
List
activities
=
new
ArrayList();
public
List
getActivities(){
return
activities;
}
}
BaseActivity代码如下
class
BaseActivity
extends
Activity{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
((MyApp)getApplication()).getActivities().add(this);
}
@Override
protected
void
onDestroy()
{
super.onDestroy();
((MyApp)getApplication()).getActivities().remove(this);
}
}
以后工程里的所有Activity都继承于BaseActivity即可
最后是MainAcitivty的代码,在onkeydown方法里遍历list集合,调用每个activity的finish方法即可
public
class
MyActivity
extends
Activity
{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
}
@Override
public
boolean
onKeyDown(int
keyCode,
KeyEvent
event)
{
List
activities
=
((MyApp)getApplication()).getActivities();
for(Activity
activity:activities){
activity.finish();
}
return
super.onKeyDown(keyCode,
event);
}
}