瀏覽代碼

处理返回按键问题

zhipeng 7 月之前
父節點
當前提交
7c6e6a6e0b
共有 1 個文件被更改,包括 29 次插入0 次删除
  1. 29 0
      native/engine/android/app/src/com/cocos/game/AppActivity.java

+ 29 - 0
native/engine/android/app/src/com/cocos/game/AppActivity.java

@@ -27,6 +27,7 @@ package com.cocos.game;
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.os.Bundle;
+import android.view.KeyEvent;
 import android.widget.Toast;
 
 import com.cocos.lib.CocosActivity;
@@ -103,6 +104,34 @@ public class AppActivity extends CocosActivity {
     }
 
     @Override
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        return super.onKeyUp(keyCode, event);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            if (event.getAction() == KeyEvent.ACTION_DOWN) {
+                long timeMillis = System.currentTimeMillis();
+                if (timeMillis - lastBackPressedTime < 2000) {
+                    launchHomeScreen();
+                } else {
+                    lastBackPressedTime = timeMillis;
+                    Toast.makeText(this, "再按一次退出游戏", Toast.LENGTH_SHORT).show();
+                }
+                return true;
+            }
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void launchHomeScreen() {
+        Intent intent = new Intent(Intent.ACTION_MAIN);
+        intent.addCategory(Intent.CATEGORY_HOME);
+        startActivity(intent);
+    }
+
+    @Override
     public void onConfigurationChanged(Configuration newConfig) {
         SDKWrapper.shared().onConfigurationChanged(newConfig);
         super.onConfigurationChanged(newConfig);