ing*_*.am 52 android menu button android-sdk-1.6
我的一个Android活动中有这个方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
Log.d("Test", "Back button pressed!");
}
else if(keyCode == KeyEvent.KEYCODE_HOME)
{
Log.d("Test", "Home button pressed!");
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
但是,即使KEYCODE_HOME有效,log方法也不会触发.这适用于后退按钮.有谁知道这是为什么以及如何使这个工作?
小智 22
我花了将近一个月的时间来完成这项工作.刚才我解决了这个问题.在您的活动的onPause()中,您必须包含以下if条件:
if (this.isFinishing()){
//Insert your finishing code here
}
Run Code Online (Sandbox Code Playgroud)
函数isFinishing()返回一个布尔值.如果您的应用实际关闭,则为True;如果您的应用仍在运行,则为False,例如屏幕关闭.
希望能帮助到你!
Lio*_*ior 12
HOME按钮无法被应用程序拦截.这是Android中的一种设计行为.原因是为了防止恶意应用程序控制您的手机(如果用户无法按回或回家,他可能永远无法退出应用程序).主页按钮被视为用户的"安全区域",并将始终启动用户配置的主应用程序.
以上唯一的例外是任何配置为主页替换的应用程序.这意味着它在AndroidManifest.xml中为相关活动声明了以下内容:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
按主页按钮时,onNewIntent将调用当前主应用程序的活动.
小智 7
我发现当我按下HOME按钮时,会调用onStop()方法.您可以使用以下代码来监视它:
@Override
protected void onStop()
{
super.onStop();
Log.d(tag, "MYonStop is called");
// insert here your instructions
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130370 次 |
| 最近记录: |