Files
yusheng-android/app/src/main/java/com/qxcm/qxlive/LaunchPageActivity.java

104 lines
2.8 KiB
Java
Raw Normal View History

2025-05-15 11:08:23 +08:00
package com.qxcm.qxlive;
import android.content.Intent;
import android.os.Bundle;
2025-05-15 11:08:23 +08:00
import android.os.Handler;
2025-08-08 10:31:50 +08:00
import androidx.annotation.Nullable;
2025-05-15 11:08:23 +08:00
import com.qxcm.moduleutil.activity.BaseAppCompatActivity;
2025-05-15 11:08:23 +08:00
import com.qxcm.moduleutil.activity.BaseMvpActivity;
import com.qxcm.moduleutil.base.CommonAppContext;
2025-05-15 11:08:23 +08:00
import com.qxcm.moduleutil.dialog.PolicyDialog;
import com.qxcm.moduleutil.utils.SpUtil;
import com.qxcm.qxlive.databinding.ActivityLaunchPageBinding;
public class LaunchPageActivity extends BaseAppCompatActivity<ActivityLaunchPageBinding> {
2025-05-15 11:08:23 +08:00
private Handler handler;
2025-08-20 21:23:22 +08:00
private PolicyDialog policyDialog;
2025-05-15 11:08:23 +08:00
@Override
protected void initData() {
handler = new Handler();
// 定义一个Runnable
Runnable runnable = new Runnable() {
@Override
public void run() {
initLogin();
}
};
if (SpUtil.isAgreePolicy()) {
// //延迟1.5秒执行
handler.postDelayed(runnable, 2500);
2025-05-15 11:08:23 +08:00
} else {
2025-08-20 21:23:22 +08:00
policyDialog = new PolicyDialog(this);
2025-05-15 11:08:23 +08:00
policyDialog.setCancelable(false);
policyDialog.setCanceledOnTouchOutside(false);
policyDialog.setPolicyClickListener(new PolicyDialog.PolicyClickListener() {
@Override
public void policyAgree() {
SpUtil.completeAgreePolicy();
CommonAppContext.getInstance().initialization();
2025-05-15 11:08:23 +08:00
initLogin();
}
@Override
public void policyExit() {
finish();
}
});
policyDialog.show();
}
2025-05-15 11:08:23 +08:00
}
2025-08-20 21:23:22 +08:00
// 添加 onDestroy 方法来处理对话框
@Override
protected void onDestroy() {
// 如果 PolicyDialog 仍在显示,则 dismiss 它
if (policyDialog != null && policyDialog.isShowing()) {
policyDialog.dismiss();
policyDialog = null;
}
2025-05-15 11:08:23 +08:00
2025-08-20 21:23:22 +08:00
// 移除所有待处理的回调以防止内存泄漏
if (handler != null) {
handler.removeCallbacksAndMessages(null);
}
super.onDestroy();
}
@Override
protected void initView() {
2025-05-15 11:08:23 +08:00
}
private void initLogin() {
2025-08-20 21:23:22 +08:00
// 在启动新 Activity 前先关闭对话框
if (policyDialog != null && policyDialog.isShowing()) {
policyDialog.dismiss();
policyDialog = null;
}
2025-05-15 11:08:23 +08:00
startActivity(new Intent(this, PasswordLoginActivity.class));
finish();
}
2025-05-15 11:08:23 +08:00
@Override
protected int getLayoutId() {
return R.layout.activity_launch_page;
}
2025-08-08 10:31:50 +08:00
@Override
2025-08-20 21:23:22 +08:00
public void onCreate(Bundle savedInstanceState) {
2025-08-08 10:31:50 +08:00
super.onCreate(savedInstanceState);
2025-08-20 21:23:22 +08:00
if (!isTaskRoot()) {
finish();
return;
2025-08-08 10:31:50 +08:00
}
}
2025-05-15 11:08:23 +08:00
}