0

嗨,世界各地的 Android 应用程序开发人员,

我是android应用程序开发的新手。如何覆盖菜单按钮,以便当用户按下菜单按钮时,会弹出退出按钮以退出应用程序。

谢谢您的帮助。

4

4 回答 4

1

似乎没有人关心你的标签cordovahtml5你的问题!在您的 onDeviceReady 事件中,您为菜单按钮设置了一个侦听器并调用navigator.app.exitApp()

function onDeviceReady(){
   document.addEventListener("menubutton", closeApp, false);
} 

function closeApp(){
   navigator.app.exitApp();
} 

请注意,虽然其他答案实际上并未回答您的问题,但它们具有重要信息:

  • 并非所有设备都有菜单按钮。
  • 请务必通知用户您正在关闭应用程序,Adrien 显示对话框的方法非常标准且足够好。
  • 如果您尝试发布具有 iOS 关闭按钮的应用程序,您的应用程序可能会被 拒绝
于 2013-07-04T09:46:38.440 回答
0

像这样:编辑

public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
    // Create your alertDialog
        new AlertDialog.Builder(this)
    .setTitle("Exit ?")
    .setMessage("Are you sure you want to exit?")
    .setNegativeButton(android.R.string.no, null)
    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface arg0, int arg1) {
            //Destroy your current activities
    Intent i = getBaseContext().getPackageManager()
                    .getLaunchIntentForPackage(   getBaseContext().getPackageName() );
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(i);
        }
    }).create().show();
    return true;
}
return super.onKeyUp(keyCode, event);
}

希望这有帮助

于 2013-07-04T09:31:10.337 回答
0
  1. 菜单按钮已弃用!(从安卓 4 开始)
  2. 不要以编程方式退出应用程序。让安卓系统管理应用程序的生命周期!无需退出应用程序。事实上,您将破坏多任务应用程序上下文切换(这是 Android 与 iOS 相比的一大特色)。所以用户不能回到当前的应用程序状态(屏幕/数据等),因为应用程序将全新启动,用户必须导航到他以前的位置等。
于 2013-07-04T09:31:17.730 回答
0

Android 的设计不支持选择退出应用程序,而是由操作系统管理它。您可以通过其相应的 Intent 调出 Home 应用程序:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_MENU)) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Do you want to Exit?").setCancelable(true)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    Intent intent = new Intent(Intent.ACTION_MAIN);
                    intent.addCategory(Intent.CATEGORY_HOME);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                }
            });
              .setNegativeButton("OK", new DialogInterface.OnClickListener() {
                  dialog.dismiss();
                });
    AlertDialog alert = builder.create();
    alert.show();
    }
    return true;
}
于 2013-07-04T09:32:38.627 回答