2013-10-09 38 views
0

我曾尝试以下方法来覆盖主屏幕按钮: -要覆盖HOME_BUTTON安卓

  1. 使用的KeyDown方法。

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        Log.e("Pressed", "" + keyCode); 
    
    if (keyCode == KeyEvent.KEYCODE_HOME) 
    { 
        Log.e("HOME_PRESSED", "Ignoring HOME Button."); 
        return true; 
    }  
    else if (keyCode == KeyEvent.KEYCODE_BACK) 
    { 
        Log.e("BACK_PRESSED", "Ignore back pressing."); 
        return true; 
    } 
         return super.onKeyDown(keyCode, event); 
    } 
    
  2. 通过使用NewIntent方法。

    @Override 
        protected void onNewIntent(Intent intent) {  
    super.onNewIntent(intent);  
    if (intent.getAction().equalsIgnoreCase(Intent.ACTION_MAIN)) 
    { 
        Log.e("MAIN_PRESSED", "Ignoring MAIN Button."); 
    } 
    } 
    

但我无法重写HOME按钮按下事件。

因此,根据我的知识和日志,我发现每次按Home按钮。

它发生火灾ACT-AM_ON_PAUSE_CALLED(不了解它)

我试图谷歌这个东西了解更多关于它,但没有发现相关!

请帮忙覆盖应用程序中的HOME按钮。

+0

看一看这个链接: http://stackoverflow.com/questions/5039500/android-overriding-home-key –

+2

为什么?为什么应用程序的行为与所有其他应用程序的行为不同,并且用户无法理解?除了启动器之外,如果应用程序发现了一种重写家庭的方法(这会利用一个bug),那么它就不会长时间保留在我的设备上。 – Simon

+1

@西蒙我觉得这只是他老板的又一个愚蠢的要求,我自己也习惯了被愚弄和奇怪的事情所困扰! –

回答

1

从接受的答案here 你不能覆盖它,但你可以添加一些代码来的onStop(),这是在home键被称为点击

+0

这个回答适合我。让我试试看。 :) – Harpreet

+0

它运作良好!谢谢。我忽略了这些有用的方法。 – Harpreet

+0

不客气。 –

2

一般不建议覆盖Android OS的主页按钮。当应用程序出现问题并且您只想离开时,主页按钮是一个“安全”按钮。如果你愿意的话,它是一种“弹出”按钮。

您可以通过在清单中将其声明为应用程序/操作来覆盖它,只要按下主页按钮,用户就可以选择每当Home按钮被点击并将您的应用程序设置为默认选项。但是,此方法会要求用户在您的应用程序和默认主页操作之间进行选择并指定默认值(否则,每次按Home按钮时都必须在这两个选项之间进行选择) - 这完全不被推荐(糟糕的用户体验)。

1

那是不可能的,它已被禁止重写它(安全问题)。这是由框架处理,你不能做你喜欢它。