android studio 定时器操作 实现定时执行相关任务
package ipget.wenzheng.studio.ipget;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley; import java.util.Date;
import java.util.Timer;
import java.util.TimerTask; public class VolleyDemoActivity extends AppCompatActivity implements View.OnClickListener {
private Button button; //初始化按钮控件
private Button button2; //初始化按钮控件
private TextView TextView1; //初始化文本控件
private TextView textView2; //初始化文本控件
private EditText ip; //初始化编辑框
private TextView yanwu; //初始化文本控件
private Button stop;
Timer timer = new Timer(); //定义全局变量
long delay = 2000;
long intevalPeriod = 5* 1000;
TimerTask task = new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}}; Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
// 要做的事情
super.handleMessage(msg);
//Toast.makeText(VolleyDemoActivity.this,"ceshi",Toast.LENGTH_SHORT).show();
test();
}
}; @Override
protected void onCreate(Bundle savedInstanceState) { //直接运行的界面
super.onCreate(savedInstanceState);
setContentView(R.layout.content_main); //进入主界面 initView(); //界面初始化
initListener(); //初始化监听
}
private void initListener() { button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//test();
timer.scheduleAtFixedRate(task, delay,intevalPeriod); //开启定时器
} });
//团队简介按钮的单机事件,toast弹出名字
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(VolleyDemoActivity.this,"团队成员:金玲,郭殊辰,李学倩",Toast.LENGTH_SHORT).show();
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
task.cancel();
}
});
} /**
* 初始化控件
* 获取控件的ID
*/
private void initView() {
button2 = (Button) findViewById(R.id.button2);
ip = (EditText) findViewById(R.id.ip);
button = (Button)findViewById(R.id.button);
TextView1 = (TextView) findViewById(R.id.textView1);
textView2 = (TextView) findViewById(R.id.textView2);
yanwu = (TextView) findViewById(R.id.yanwu);
stop = (Button) findViewById(R.id.stop);
}
private void test() {
Toast.makeText(VolleyDemoActivity.this,"正在刷新数据。。。",Toast.LENGTH_SHORT).show();
//创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyDemoActivity.this);
//创建一个网络请求
String url_GET = ip.getText().toString() ;
//第一个参数为url 第二个参数为 监听回调,新建即可
StringRequest stringRequest = new StringRequest(url_GET, new Response.Listener<String>() {
//正确接收数据的回调
@Override
public void onResponse(String response) {
// 分解数据
//将从网页获取到的数据进行分解,倒序查找的方法进行分解
//取出温度值
String tval = response.substring(response.length()-19,response.length()-14);
//取出湿度值
String hval = response.substring(response.length()-13,response.length()-8);
//取出烟雾值
String yval = response.substring(response.length()-26,response.length()-20);
//将数据存储到相应控件中
TextView1.setText(tval);
textView2.setText(hval);
yanwu.setText(yval);
}
}, new Response.ErrorListener() {
//错误的监听回调
@Override
public void onErrorResponse(VolleyError error) {
textView2.setText("加载失败"+error);
}
});
//将创建的请求添加到队列中
requestQueue.add(stringRequest);
}
@Override
protected void onStop() {
super.onStop();
//当Activity停止运行后,取消Activity的所有网络请求
MyApplication.getRequestQueue().cancelAll(VolleyRequestDemo.VOLLEY_TAG);
Log.i("### onStop", "cancel all:tag=" + VolleyRequestDemo.VOLLEY_TAG);
} @Override
public void onClick(View v) { //另外一种单击事件的方法,可以学习一下在下面判断ID即可 }
}
android studio 定时器操作 实现定时执行相关任务的更多相关文章
- android studio定时器
1.超时 CountDownTimer第一个参数超时时间,第二个参数多久执行一次onTick(), 到达设定的超时时间执行onFinsh(),cancel取消超时计数,start重新开始(从零开始). ...
- Android Studio 本地化操作
1.打开 string.xml 文件,在右上角,点 open-editor 2.点左上角的“地球”图标,就会弹出选择国家列表,输入zh会自动筛选,能很快选到中国简体中文 3.选择后,会在原来的列表中添 ...
- android studio sqlite操作代码片段
SQLiteDatabase db;Cursor cur; SimpleCursorAdapter adapter; // 打开或创建数据库db = openOrCreateDatabase(DB ...
- 在Android Studio 和 Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"
面向对象:曾经使用过SVN的同学. (因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器. 所以连S ...
- 昼猫笔记 JavaScript -- 异步执行 | 定时器真的定时执行?
本篇主要内容:异步.定时器引发的思考 预计阅读时间:8分钟 了解 我们都知道在js中定时器有两种 setInterval() . setTimeout() setInterval() :按 ...
- tensorflow lite的demo在android studio上环境搭建
由于很久没有接触过Android开发,而且最早用的是eclipse,所以这个demo在android studio上的搭建过程,真的是踩了不少坑.记录这篇文章,纯粹是给自己一点收获. 环境搭建的过程, ...
- 第二章:Android Studio概述(二)[学习Android Studio汉化教程]
The Main Menu Bar 主菜单栏 主菜单栏位于Android Studio的最上面,你几乎可以利用主菜单和其子菜单来执行任何操作.不像Android Studio中其他的一些菜单,主菜单 ...
- [osx] android studio下修改avd的hosts文件
1. 启动avd 安装/启动avd就不说啦,可以直接在android studio里面操作的 2. 进入adb目录 当然是打开终端来敲命令啦. cd /Users/birdylee/Library/A ...
- [Learn Android Studio 汉化教程]第四章 : Refactoring Code
[Learn Android Studio 汉化教程]第四章 : Refactoring Code 第四章 Refactoring Code 重构代码 在Android Studio中开发,解决 ...
随机推荐
- Java数据库操作类演示
只在mysql上测试过,不知道算不算好使1. [代码][Java]代码 package org.load.demo; import java.io.IOException;import ja ...
- BZOJ3355
3355: [Usaco2004 Jan]有序奶牛 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 37 Solved: 19[Submit][Sta ...
- View Controller Programming Guide for iOS---(七)---Resizing the View Controller’s Views
Resizing the View Controller’s Views A view controller owns its own view and manages the view’s cont ...
- Redis高级
Redis高级 redis数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 11. Views 上
通常会使用外层模板的view,当做公共的模块 通常叫做_Layout.cshtml views下新建Shared文件夹 主要关注RenderBody,这里会具体渲染Action返回的内容View la ...
- ccflow汇总帖
视频教程学习 公司电脑路径; E:\开源工作流\ccflow佳怡物流版\ccflow\doc cclfow的码云地址: https://gitee.com/opencc/ccflow 在线demo演示 ...
- win10部署Python3和Python2
首先添加两个的环境变量, 使用python3 -m pip -v (后面为自己的pip命令) 工具: pip install you-get you-get -url
- 【废弃】JavaScript 控制类语法
创建: 2017/10/07 完成: 2017/10/07 结束: 2019/02/19 把所有内容迁出到[JavaScript 基础]并将本博文归档到[废弃] return前加一个空格, 使所有单元 ...
- BestCoder Round #73 (div.2)1002/hdoj5631
题意: 给出一张 nnn 个点 n+1n+1n+1 条边的无向图,你可以选择一些边(至少一条)删除. 分析: 一张n个点图,至少n-1条边才能保证联通 所以可以知道每次可以删去1条边或者两条边 一开始 ...
- 3DMAX 9 角色建模3 uv展开
将角色删除一半,展好uv再镜像出来,节省一半工作量(前提是对称) 添加UVW展开编辑器(Unwrap UVW),选择面 打开UV编辑器 这里要注意映射问题,默认打开UV编辑器后所选择的面是映射到与选择 ...