| 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",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); | 
|     } | 
| } |