package com.doumee.keyCabinet.ui.keyCabinet;
|
|
import androidx.annotation.Nullable;
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import android.app.AlarmManager;
|
import android.app.PendingIntent;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
|
import com.doumee.keyCabinet.MApplication;
|
import com.doumee.keyCabinet.R;
|
import com.doumee.keyCabinet.base.MyBaseActivity;
|
import com.doumee.keyCabinet.databinding.ChangeUrlActivityBinding;
|
import com.doumee.keyCabinet.http.Apis;
|
import com.doumee.keyCabinet.ui.main.MainActivity;
|
import com.doumee.keyCabinet.utils.LMobileInfo;
|
import com.doumee.keyCabinet.utils.i485.SportUtils;
|
import com.doumee.lib_coremodel.bean.event.ActionEventData;
|
import com.doumee.lib_coremodel.util.SpUtil;
|
import com.doumee.lib_coremodel.view.ToastView;
|
import com.example.datalibrary.utils.ToastUtils;
|
|
import dagger.hilt.android.AndroidEntryPoint;
|
|
@AndroidEntryPoint
|
public class ChangeUrlActivity extends MyBaseActivity<ChangeUrlVM, ChangeUrlActivityBinding> {
|
|
@Override
|
public int getLayoutId() {
|
return R.layout.change_url_activity;
|
}
|
|
@Override
|
public void initView(@Nullable Bundle savedInstanceState) {
|
isAddCountTimer = false;
|
normalConfig();
|
getDB().setModel(getVM());
|
getDB().etNo.setText(LMobileInfo.getDeviceUniqueId());
|
getDB().etNo.setEnabled(false);
|
}
|
|
@Override
|
public void initData(@Nullable Bundle savedInstanceState) {
|
getDB().etUrl.setText(SpUtil.getString("base_url", Apis.HTTP));
|
getDB().etTime.setText(SpUtil.getInt("loop_time",30)+"");
|
}
|
|
@Override
|
protected void doRegister(int type, ActionEventData data) {
|
switch (type){
|
case 2:
|
String url = getDB().etUrl.getText().toString();
|
if(TextUtils.isEmpty(url)){
|
ToastView.show(MApplication.mContext,"接口地址不能为空");
|
return;
|
}
|
if(!url.startsWith("http://")||!url.startsWith("https://")||!url.endsWith("/")){
|
ToastView.show(MApplication.mContext,"接口地址错误");
|
return;
|
}
|
if(TextUtils.isEmpty(getDB().etTime.getText().toString())){
|
ToastView.show(MApplication.mContext,"接口调用间隔不能为空");
|
return;
|
}
|
int time = Integer.parseInt(getDB().etTime.getText().toString());
|
if(time<=0){
|
ToastView.show(MApplication.mContext,"接口调用间隔错误");
|
return;
|
}
|
String oldUrl = SpUtil.getString("base_url", Apis.HTTP);
|
SpUtil.saveString("base_url",url);
|
SpUtil.saveInt("loop_time",time);
|
ToastView.show(MApplication.mContext,"保存成功");
|
if(!oldUrl.equals(url)){
|
//接口不同,重新启动
|
restartApp();
|
}
|
break;
|
}
|
}
|
|
private void restartApp(){
|
// 创建一个新的启动意图
|
Intent intent = new Intent(mContext, MainActivity.class);
|
// 设置FLAG_ACTIVITY_CLEAR_TASK标志位
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
// 使用PendingIntent包装启动意图
|
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_ONE_SHOT);
|
// 获取AlarmManager实例
|
AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
|
// 在500毫秒后触发重启操作
|
alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 10, pendingIntent);
|
|
android.os.Process.killProcess(android.os.Process.myPid());
|
System.exit(1);
|
}
|
}
|