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 { @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",60)+""); } @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("/")){ //正确 }else { 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); } }