覆盖Home Button的功能

Ume*_*ooq 2 java android home-button

在Android中,我已经能够非常轻松地覆盖后退按钮的功能,但对于我的应用程序,我需要覆盖home button.例如Activity A,当用户按下主页按钮时,用户就在activity B is launched.我试过以下但是失败了.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if(keyCode == KeyEvent.KEYCODE_HOME)
    {
        startActivity(new Intent(this, ActivityB.class));

        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我确信它可以完成,因为Nova Launcher当用户打开home screen和他时presses the home button,启动器为用户提供list of home screens跳转.我需要同样的功能.如何实现这一目标.

问候

JiT*_*HiN 5

试试这个:

@Override
    protected void onUserLeaveHint() {
        if (!navigating) {
            Intent intent2 = new Intent();
            intent2.setClass(ActivityA.this, ActivityB.class);
            intent2.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            forceHome(this, intent2);
        }
        super.onUserLeaveHint();
    }

public static void forceHome(Context paramContext, Intent paramIntent) {

        if (paramIntent != null) {
            ((AlarmManager) paramContext.getSystemService(ALARM)).set(1,
                    System.currentTimeMillis(),
                    PendingIntent.getActivity(paramContext, 0, paramIntent, 0));
        }

    }
Run Code Online (Sandbox Code Playgroud)

作为android的安全功能,该活动仅在5秒后启动.如果你想立即启动它.用你自己的Home Launcher.