microacup / microacup.github.com

长者的经验
0 stars 1 forks source link

Android Back和Home键相同效果,返回但不销毁 #26

Open microacup opened 10 years ago

microacup commented 10 years ago

1.当收到back键消息时,调用moveTaskToBack,这样的效果和按Home一样,程序并没有退出,而是在后台。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);//true对任何Activity都适用
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

activity中调用 moveTaskToBack (boolean nonRoot)方法即可将activity 退到后台,而不用finish()退出。

参数为false代表只有当前activity是task根,指应用启动的第一个activity时才有效;如果为true则忽略这个限制,任何activity都可以有效。

2.另一种思路,跳转Activity到home

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addCategory(Intent.CATEGORY_HOME);
        startActivity(intent);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
errorlife commented 8 years ago

也是6.mark