android定时器实现每天定时执行任务(AndroidStudio_在android中使用定时器_异步定时实现心跳保活功能)

实际上,它是定期向服务器发送心跳信号,并向服务器提供简单的监控功能

你不能在这里简单地使用定时器。将发生阻塞。你应该结合使用定时器和处理器

它可以在不影响接口的情况下异步发送心跳信号

android定时器


以下代码可以直接复制并在过去使用

1.前30000在延迟30秒后执行,然后第二30000每30秒执行一次 //每30秒保持一次生命 私有voidstartKeepAliveService(){ keepAliveTimer。时间表(keepAliveTask,300003000); } >;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>; 2.计时器执行时,请他向处理程序发送消息 //定时器周期 TimerkeepAliveTimer=newTimer(); TimerTaskkeepAliveTask=新TimerTask(){ 公开募捐{ 消息消息=新消息(); 消息what=108; keepAliveHandler。发送消息; } }; >;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>; 3.处理程序在收到命令后执行心跳请求 //3.保时治疗 HandlerkeepAliveHandler=newHandler(){ 公共无效handleMessage(消息消息){ 开关(msg.what){ 案例108: 字符串url=";http://172.19.128.53:8060/api/keepAlive"; OkHttpClientfaceHttpClient=新OkHttpClient(); RequestfaceRequest=新请求。建筑商() .得到 .url(url) .build(); //构造调用对象 CallfaceCall=faceHttpClient。newCall(faceRequest); 面对面通话。排队(新的okhttp3.Callback(){ @凌驾 publicvoidonFailure(调用调用,IOE异常){ 烤面包。敬酒(HomeActivity.this,";11111";); } @凌驾 publicvoidonResponse(CallCall,ResponseResponse)引发IOException{ 字符串jsonStr=response。body()。字符串(); //1.将Base64转换为图片 试试看{ JSONObjectjsonObj=新的JSONObject(jsonStr); 字符串代码=jsonObj。getString(";代码";); 如果(";200";等于(代码)){ //成功地生存系统出来Println(";成功保持活力";); }否则{ 系统出来Println(";保持活力失败";); } }捕获(JSONExceptione){ 系统出来Println(";保持活动响应数据,解析失败";); e、printStackTrace(); } } }); 打破 } 超级的handleMessage(msg); } };



您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友