Android软菜单键监听器存在?
Android soft menu key listener exists?
我有一个问题,如果我禁用硬件菜单按钮(即返回、主页、菜单)。我在屏幕上留下了一个软件菜单栏。但是我以前的 KEYCODE_MENU 按键监听器不再适用于这个虚拟菜单按钮。有人可以帮助我为这个虚拟菜单按钮设置正确的按键监听器吗?
在硬件菜单按钮上工作之前,但当我禁用硬件按钮并在 android 中启用软菜单按钮时停止工作:
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_MENU:
doSomething();
return true;
}
return super.onKeyDown(keycode, e);
}
New versions of Android do not have Menu button at all,尽管一些制造商 ahem Samsung 继续添加硬件菜单按钮。
要在导航栏中添加菜单按钮,这将发送菜单键码,您必须在 AndroidManifest.xml 中将 targetSdkVersion 设置为 10,这会使您的应用程序看起来很古老。
您实际上可以期望只有三个硬件按钮(例如,将发送键码的按钮)- 返回、调高音量和调低音量,并且将音量按钮用于更改音量以外的任何其他用途都是不好的风格。
你可以做一个 hack,当应用程序处于 运行 时点击最近按钮时,它会将应用程序置于 onPause 状态。因此,您可以做的是,在您应用的 onPause()
中,重新排序任务并将您的应用置于所有任务之上。这样你只会在按下最近的应用程序按钮时遇到故障。
将此代码放入 onPause()
((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).moveTaskToFront(getTaskId(), 0);
需要以下权限才能重新排序任务。
<uses-permission android:name="android.permission.REORDER_TASKS" />
我有一个问题,如果我禁用硬件菜单按钮(即返回、主页、菜单)。我在屏幕上留下了一个软件菜单栏。但是我以前的 KEYCODE_MENU 按键监听器不再适用于这个虚拟菜单按钮。有人可以帮助我为这个虚拟菜单按钮设置正确的按键监听器吗?
在硬件菜单按钮上工作之前,但当我禁用硬件按钮并在 android 中启用软菜单按钮时停止工作:
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_MENU:
doSomething();
return true;
}
return super.onKeyDown(keycode, e);
}
New versions of Android do not have Menu button at all,尽管一些制造商 ahem Samsung 继续添加硬件菜单按钮。
要在导航栏中添加菜单按钮,这将发送菜单键码,您必须在 AndroidManifest.xml 中将 targetSdkVersion 设置为 10,这会使您的应用程序看起来很古老。
您实际上可以期望只有三个硬件按钮(例如,将发送键码的按钮)- 返回、调高音量和调低音量,并且将音量按钮用于更改音量以外的任何其他用途都是不好的风格。
你可以做一个 hack,当应用程序处于 运行 时点击最近按钮时,它会将应用程序置于 onPause 状态。因此,您可以做的是,在您应用的 onPause()
中,重新排序任务并将您的应用置于所有任务之上。这样你只会在按下最近的应用程序按钮时遇到故障。
将此代码放入 onPause()
((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).moveTaskToFront(getTaskId(), 0);
需要以下权限才能重新排序任务。
<uses-permission android:name="android.permission.REORDER_TASKS" />