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

104 lines
2.8 KiB
Java

package com.qxcm.qxlive;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.Nullable;
import com.qxcm.moduleutil.activity.BaseAppCompatActivity;
import com.qxcm.moduleutil.activity.BaseMvpActivity;
import com.qxcm.moduleutil.base.CommonAppContext;
import com.qxcm.moduleutil.dialog.PolicyDialog;
import com.qxcm.moduleutil.utils.SpUtil;
import com.qxcm.qxlive.databinding.ActivityLaunchPageBinding;
public class LaunchPageActivity extends BaseAppCompatActivity<ActivityLaunchPageBinding> {
private Handler handler;
private PolicyDialog policyDialog;
@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);
} else {
policyDialog = new PolicyDialog(this);
policyDialog.setCancelable(false);
policyDialog.setCanceledOnTouchOutside(false);
policyDialog.setPolicyClickListener(new PolicyDialog.PolicyClickListener() {
@Override
public void policyAgree() {
SpUtil.completeAgreePolicy();
CommonAppContext.getInstance().initialization();
initLogin();
}
@Override
public void policyExit() {
finish();
}
});
policyDialog.show();
}
}
// 添加 onDestroy 方法来处理对话框
@Override
protected void onDestroy() {
// 如果 PolicyDialog 仍在显示,则 dismiss 它
if (policyDialog != null && policyDialog.isShowing()) {
policyDialog.dismiss();
policyDialog = null;
}
// 移除所有待处理的回调以防止内存泄漏
if (handler != null) {
handler.removeCallbacksAndMessages(null);
}
super.onDestroy();
}
@Override
protected void initView() {
}
private void initLogin() {
// 在启动新 Activity 前先关闭对话框
if (policyDialog != null && policyDialog.isShowing()) {
policyDialog.dismiss();
policyDialog = null;
}
startActivity(new Intent(this, PasswordLoginActivity.class));
finish();
}
@Override
protected int getLayoutId() {
return R.layout.activity_launch_page;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!isTaskRoot()) {
finish();
return;
}
}
}