Forráskód Böngészése

修改首页返回键逻辑

Pq 3 éve
szülő
commit
be88cb3989

+ 1 - 0
BaseLibrary/src/main/res/values/strings.xml

@@ -18,4 +18,5 @@
     <string name="equipment_testing_hint">设备检测需要麦克风、储存权限,去设置?</string>
     <string name="cancel">取消</string>
     <string name="sure">确定</string>
+    <string name="press_twice_exit" >再按一次返回键退出</string>
 </resources>

+ 27 - 0
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -5,6 +5,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
@@ -21,6 +22,7 @@ import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.LogUtils;
+import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.HomePageAdapter;
@@ -61,6 +63,8 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     private MineFragment mMineFragment;
     private MallFragment shopMallFragment;
     private TextView tvMsgCount;
+    private static final int EXIT_APP_DELAY = 1000;
+    private long lastTime = 0;
 
     /**
      * 打开首页并选中指定tab
@@ -283,6 +287,29 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         }
     }
 
+    /**
+     * 监听返回键
+     *
+     * @param keyCode
+     * @param event
+     * @return
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            if ((System.currentTimeMillis() - lastTime) > EXIT_APP_DELAY) {
+                ToastUtil.getInstance().showShort(getString(com.cooleshow.base.R.string.press_twice_exit));
+                lastTime = System.currentTimeMillis();
+            } else {
+                moveTaskToBack(true);
+            }
+            return true;
+
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
     @Override
     public void onDestroy() {
         super.onDestroy();

+ 28 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -5,6 +5,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
@@ -17,6 +18,7 @@ import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.LogUtils;
+import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.HomePageAdapter;
@@ -31,6 +33,7 @@ import com.daya.live_teaching.im.IMManager;
 import com.google.android.material.bottomnavigation.BottomNavigationItemView;
 import com.google.android.material.bottomnavigation.BottomNavigationMenuView;
 import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.google.android.material.snackbar.Snackbar;
 import com.tbruyelle.rxpermissions3.RxPermissions;
 import com.tencent.open.im.IM;
 
@@ -59,6 +62,8 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     private MineFragment mMineFragment;
     private MallFragment shopMallFragment;
     private TextView tvMsgCount;
+    private static final int EXIT_APP_DELAY = 1000;
+    private long lastTime = 0;
 
     /**
      * 打开首页并选中指定tab
@@ -298,6 +303,29 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         }
     }
 
+    /**
+     * 监听返回键
+     *
+     * @param keyCode
+     * @param event
+     * @return
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            if ((System.currentTimeMillis() - lastTime) > EXIT_APP_DELAY) {
+                ToastUtil.getInstance().showShort(getString(com.cooleshow.base.R.string.press_twice_exit));
+                lastTime = System.currentTimeMillis();
+            } else {
+                moveTaskToBack(true);
+            }
+            return true;
+
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
     @Override
     public void onDestroy() {
         super.onDestroy();