首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Launcher -主页按钮

Android Launcher -主页按钮
EN

Stack Overflow用户
提问于 2013-04-14 03:06:45
回答 2查看 1.6K关注 0票数 1

我正在为Android开发一个主屏幕启动器应用程序。

现在,如果用户已经在主屏幕上,

我想要一个自定义操作时,用户按下的主页按钮。

我知道一些其他的发射器,可以覆盖主键,

例如,Go Launcher Ex。

我的代码是:

代码语言:javascript
复制
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
    int action = event.getAction();
    int keyCode = event.getKeyCode();

    switch (action)
    {
        case KeyEvent.ACTION_DOWN:
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_HOME:
                    break;
            }
            break;

        case KeyEvent.ACTION_UP:
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_HOME:
                    if (!event.isCanceled())
                        Log.i("TEST", "HOME");
                    break;
            }
            break;
    }

    return super.dispatchKeyEvent(event);
}

但是当我按下Home键时,什么也没有发生..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 03:14:35

启动器是一种活动。

因此,我相信当用户按下主页按钮时,您将获得焦点。有一件事我可以肯定地告诉你。这是可能的!

在视图类中获得了setOnFocusChanged()

票数 1
EN

Stack Overflow用户

发布于 2013-04-14 03:09:26

引用此post

您无法“检测到主页键按钮按下事件”,抱歉。

然而,在同一篇文章中,Idistic建议这是一个变通的办法:

代码语言:javascript
复制
long userInteractionTime = 0;

@Override
public void onUserInteraction() {
    userInteractionTime = System.currentTimeMillis();
    super.onUserInteraction();
    Log.i("appname","Interaction");
}

@Override
public void onUserLeaveHint() {
    long uiDelta = (System.currentTimeMillis() - userInteractionTime);

    super.onUserLeaveHint();
    Log.i("bThere","Last User Interaction = "+uiLag);
    if (uiDelta < 100)
        Log.i("appname","Home Key Pressed");    
    else
        Log.i("appname","We are leaving, but will probably be back shortly!");  
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15991749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档