back建home建的问题

本文介绍了如何在Android应用中捕获按键事件,包括BACK和MENU等按键,并提供了具体的实现代码。此外,还讨论了如何通过特定意图启动替代HomeScreen的功能。

捕获 何种按键的方法:

boolean mBackPressed = false; 
 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
        switch (keyCode) { 
        case KeyEvent.KEYCODE_BACK: 
            mBackPressed = true; 
            break; 
        case KeyEvent.KEYCODE_MENU: 
            if (mBackPressed) 
                unLock(); 
            break; 
        default: 
            mBackPressed = false; 
            showMessage(); 
            break; 
        } 
    } 
    return true; 
} 
 
private void showMessage() { 
    Toast.makeText(getBaseContext(), "Back + Menu", Toast.LENGTH_SHORT) 
            .show(); 
} 
 
private void unLock() { 
    this.setResult(Activity.RESULT_OK); 
    this.finish(); 
} 

 

上面的方法是不能捕获home。back建的,但是可以捕获大多数建,对于特殊的建 有的是不能捕获的如 endCall

有的需要其他方法如back。

 

如果要写一个替代 Home Screen 使用 android.intent.category.HOME Intent.

在官方文档

 docs

...not all activities have the behavior that they are destroyed when BACK is pressed. When the user starts playing music in the Music application and then presses BACK, the application overrides the normal back behavior, preventing the player activity from being destroyed, and continues playing music, even though its activity is no longer visible

 

通常back建会是程序进入死亡状态,如果你想使程序进入stop状态而不是死亡状态,那么最好使用一个service,因为即使back建之后他还是会继续执行。用你的activity控制service就好,通常你会用到下面的代码

 

 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
        moveTaskToBack(true); 
        return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

 红色的是要加入。或者你尅一参考

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html使用

@Override
public void onBackPressed() {
// do something on back.
return;
}

捕获back建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值