android studio时钟控件 (androidstudio中延长时间的代码)

其实就是定时去给服务器,发送心跳,给服务器提供简单的监控功能.

这里不能简单的用Timer实现,会出现阻塞的情况,要使用timer和Handler结合的方式

实现在不影响界面的情况下,异步发送心跳.

下面的代码可以直接copy过去就用吧

1.第一个30000是延时30秒执行,然后第二个30000是每隔30秒执行一次
   //30秒保活一次
    private void startKeepAliveService() {
        keepAliveTimer.schedule(keepAliveTask, 30000,30000);
    }


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

2.定时器执行的时候,让他去发送一个消息给handler

    //定时器循环
    Timer keepAliveTimer = new Timer();
    TimerTask keepAliveTask = new TimerTask(){
        public void run() {
            Message message = new Message();
            message.what = 108;
            keepAliveHandler.sendMessage(message);
        }
    };

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

3.handler去收到命令以后去执行,心跳请求

   //3.定时保活处理
    Handler keepAliveHandler = new Handler(){
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case 108:
                    String url="http://172.19.128.53:8060/api/keepAlive";
                    OkHttpClient faceHttpClient = new OkHttpClient();
                    Request faceRequest = new Request.Builder()
                            .get()
                            .url(url)
                            .build();

                    //构造Call对象
                    Call faceCall=faceHttpClient.newCall(faceRequest);
                    faceCall.enqueue(new okhttp3.Callback() {
                        @Override
                        public void onFailure(Call call, IOException e) {
                            ToastUtils.toast(HomeActivity.this, "11111");
                        }

                        @Override
                        public void onResponse(Call call, Response response) throws IOException {
                            String jsonStr =response.body().string();
                            //1.将base64,转换为图片
                            try {
                                JSONObject jsonObj=new JSONObject(jsonStr);
                                String code =jsonObj.getString("code");
                                if("200".equals(code)){
                                    //保活成功
                                    System.out.println("保活成功");
                                }else{
                                    System.out.println("保活失败");
                                }
                            } catch (JSONException e) {
                              
                                System.out.println("保活响应数据,解析失败");
                                e.printStackTrace();
                            }
                        }
                    });

                    break;
            }
            super.handleMessage(msg);
        }

    };


androidstudio实现实时显示时间,androidstudio时间管理app