关于app返回键的问题

一、Android 主界面按返回键不退出而是置后台; moveTaskToBack(false);

分析:

activity里有这个方法,具体如下:


关于app返回键的问题_第1张图片

publicbooleanmoveTaskToBack(booleannonRoot){

try{

returnActivityManagerNative.getDefault().moveActivityTaskToBack(

                    mToken, nonRoot);

}catch(RemoteException e) {

// Empty

        }

returnfalse;

    }

实现效果的代码如下:


关于app返回键的问题_第2张图片

@Override

publicbooleanonKeyDown(intkeyCode, KeyEvent event){

if(keyCode == KeyEvent.KEYCODE_BACK){

moveTaskToBack(true);

returntrue;

        }

returnsuper.onKeyDown(keyCode, event);

    }


仅当activity为task根(即首个启动activity)时才生效

这个方法不会改变task中的activity状态,按下返回键的作用跟按下HOME效果一样;重新点击应用还是回到应用退出前的状态;


二、点击两次返回按钮退出应用,再回来时重新进入


关于app返回键的问题_第3张图片

privatelongexitTime =0;

@Override

publicbooleanonKeyDown(intkeyCode, KeyEvent event){

if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){

if((System.currentTimeMillis()-exitTime) >2000){

Toast.makeText(getApplicationContext(),"再按一次退出程序", Toast.LENGTH_SHORT).show();

                exitTime = System.currentTimeMillis();

}else{

                finish();

System.exit(0);

            }

returntrue;

        }

returnsuper.onKeyDown(keyCode, event);

    }

三、android点击返回键不退出程序,从桌面点击再回来


关于app返回键的问题_第4张图片

@Override

publicbooleanonKeyDown(intkeyCode, KeyEvent event){

if(keyCode == KeyEvent.KEYCODE_BACK) {

Log.d("zhsy","onKeyDown LoadFragmentActivity");

Intent home =newIntent(Intent.ACTION_MAIN);

//            home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            home.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            home.addCategory(Intent.CATEGORY_HOME);

            startActivity(home);

returntrue;

        }

returnsuper.onKeyDown(keyCode, event);

    }

你可能感兴趣的:(关于app返回键的问题)