weimingfei
19 小时以前 8d459194e620a691994fb8226fb08c51a3dd8065
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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);
    }
}