按主页时重新加载相同的活动

时间:2014-05-22 10:07:40

标签: android android-homebutton

我有一个申请。我试图禁用主页按钮。很多人说在Android 4.0及以上版本中做不了。因此我决定在按主页按钮时重新加载相同的活动。我按照下面的代码。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        System.out.println("==============================");
        Intent i = new Intent(getBaseContext().getPackageManager()
                .getLaunchIntentForPackage(
                        getBaseContext().getPackageName()));
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(i);
        return true;
    }
    return false;
}

按主页按钮时无法得到任何回复。你能告诉我我错了吗?

3 个答案:

答案 0 :(得分:1)

此密钥无法被拦截,因此KEYCODE_HOME不会被发送给您。

答案 1 :(得分:1)

无法覆盖主页按钮。

public static final int KEYCODE_HOME
  

在API级别1中添加     密钥代码常量:Home键。此密钥由框架处理,从未传递给应用程序。

来源: http://developer.android.com/reference/android/view/KeyEvent.html

答案 2 :(得分:0)

这是一个刷新按钮方法,但它在我的应用程序中运行良好。在finish()中你杀了实例

refresh = (Button)findViewById(R.id.refresh);
        refresh.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                onRestart();

            }
        });
    @Override
    protected void onRestart() {

        // TODO Auto-generated method stub
        super.onRestart();
        Intent i = new Intent(lala.this, lala.class);  //your class
        startActivity(i);
        finish();

    }