diff --git a/app/src/main/java/com/ruilaizi/service/main/activity/SplashActivity.java b/app/src/main/java/com/ruilaizi/service/main/activity/SplashActivity.java index 9b5fb53..07a8584 100644 --- a/app/src/main/java/com/ruilaizi/service/main/activity/SplashActivity.java +++ b/app/src/main/java/com/ruilaizi/service/main/activity/SplashActivity.java @@ -9,7 +9,6 @@ import android.view.WindowManager; import com.ruilaizi.service.base.BaseActivity; import com.ruilaizi.service.utils.ToastUtils; -import com.ruilaizi.service.utils.checkVersionsUtils.ProfileSpUtils; import java.lang.ref.WeakReference; import java.util.List; @@ -40,13 +39,8 @@ public class SplashActivity extends BaseActivity implements EasyPermissions.Perm public void handleMessage(Message msg) { SplashActivity activity = mActivity.get(); if (activity != null) { - switch (msg.what) { - case 0: - startActivity(); - break; - case 1: - - break; + if (msg.what == 0) { + activity.startActivity(); } } } @@ -64,6 +58,15 @@ public class SplashActivity extends BaseActivity implements EasyPermissions.Perm methodRequiresTwoPermission(); } + @Override + protected void onDestroy() { + super.onDestroy(); + // 移除所有 Handler 消息,防止内存泄漏 + if (handler != null) { + handler.removeCallbacksAndMessages(null); + } + } + private void startActivity() { startActivity(MainActivity.class); @@ -93,7 +96,7 @@ public class SplashActivity extends BaseActivity implements EasyPermissions.Perm handler.sendEmptyMessageDelayed(0, 2000); } else { - EasyPermissions.requestPermissions(this, "获取当前所在城市需要该权限", + EasyPermissions.requestPermissions(this, "应用需要存储和相机权限以正常运行", RC_CAMERA_AND_LOCATION, perms); } } @@ -107,16 +110,21 @@ public class SplashActivity extends BaseActivity implements EasyPermissions.Perm //成功 @Override public void onPermissionsGranted(int requestCode, List perms) { - ToastUtils.showToast(SplashActivity.this, "授权完成"); - + if (requestCode == RC_CAMERA_AND_LOCATION) { + // 权限授权成功后,延迟启动主界面 + handler.sendEmptyMessageDelayed(0, 500); + } } //失败 @Override public void onPermissionsDenied(int requestCode, List perms) { - - ToastUtils.showToast(SplashActivity.this, "获取部分权限失败,请重新授权"); - + if (requestCode == RC_CAMERA_AND_LOCATION) { + ToastUtils.showToast(SplashActivity.this, "获取部分权限失败,请重新授权"); + // 即使权限被拒绝,也继续启动应用(避免卡在启动页) + // 应用可以在后续使用功能时再次请求权限 + handler.sendEmptyMessageDelayed(0, 2000); + } } }