如何完成()主页上的Activity按钮点击android?

时间:2012-03-27 07:18:36

标签: android

我想完成主页按钮上的活动单击。 我有下面的代码,但没有得到它的点击事件。但仍然没有得到clickevent

public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (keyCode) {
            case KeyEvent.KEYCODE_HOME:
                System.out.println("Home clicked....");
            return true;

            }
        }
        return super.onKeyDown(keyCode, event);
    }

8 个答案:

答案 0 :(得分:13)

按下主页按钮时,会在您的活动中调用 onStop 方法。因此,您可以在 onStop 方法中添加finish();来销毁您的活动。最终将引发 onDestroy 方法以确认您的活动已完成。

答案 1 :(得分:6)

您无法处理“主页”按钮。

您可以尝试覆盖其中一些方法:onStoponUserLeaveHint

你确定你需要这样做吗? 如果您可以通过onPause / onSaveInstanceState保存当前状态并在以后恢复它,则OS应该能够处理Activity的生命周期并在需要时完成它。 你能告诉我们是什么阻止你这样做吗? :)

答案 2 :(得分:2)

public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_BACK) {
              Intent intent = new Intent(Intent.ACTION_MAIN);
              intent.addCategory(Intent.CATEGORY_HOME);
              intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              startActivity(intent);  
              moveTaskToBack(false);
                return true;
           }
           return super.onKeyDown(keyCode, event);
}

答案 3 :(得分:1)

onUserLeaveHint() bez上完成你的活动当用户按下主页键时调用此方法,所以只需覆盖此方法并在此方法中调用finish()。

答案 4 :(得分:0)

一旦主页按钮活动不再是主要的活动运行活动,你可以将finish()放在onPauseMethod中,并进入onPause方法,它将停止该活动。

答案 5 :(得分:0)

完成活动,当主页按钮单击时..它的工作对我来说很完美..

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

    if ((keyCode == KeyEvent.KEYCODE_HOME)) {
        Log.v("hari", "KEYCODE_HOME");
        onUserLeaveHint();

        return true;
    }
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {

        return true;
    }
    if ((keyCode == KeyEvent.KEYCODE_MENU)) {

        return true;
    }
    return false;
}


public void onUserLeaveHint() { // this only executes when Home is selected.

    super.onUserLeaveHint();
    if (!isFinishing()) {
        Log.v("hari", "if condition working");
        finish();
    }

}

但使用此代码时有时后退按钮无效...

答案 6 :(得分:0)

当活动从主屏幕/桌面上的图标显示到前台时,您可以完成活动。见这里:https://groups.google.com/forum/#!topic/android-developers/D9CyrSzIm5c

基本上,它会将 android:clearTaskOnLaunch =“true”添加到您的活动中。

答案 7 :(得分:-2)

看到这个

public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_HOME:
            finish();
            System.out.println("Home clicked....");
        return true;

        }
    }
    return super.onKeyDown(keyCode, event);
}