MrShi
36 分钟以前 ffba2c405154eb6de9be00d9b5632e8a33ffc366
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ChangeUrlActivity.java
@@ -3,11 +3,25 @@
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;
@@ -24,11 +38,63 @@
        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);
    }
}