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