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 定时器操作 实现定时执行相关任务的更多相关文章

  1. android studio定时器

    1.超时 CountDownTimer第一个参数超时时间,第二个参数多久执行一次onTick(), 到达设定的超时时间执行onFinsh(),cancel取消超时计数,start重新开始(从零开始). ...

  2. Android Studio 本地化操作

    1.打开 string.xml 文件,在右上角,点 open-editor 2.点左上角的“地球”图标,就会弹出选择国家列表,输入zh会自动筛选,能很快选到中国简体中文 3.选择后,会在原来的列表中添 ...

  3. android studio sqlite操作代码片段

    SQLiteDatabase db;Cursor cur; SimpleCursorAdapter adapter;   // 打开或创建数据库db = openOrCreateDatabase(DB ...

  4. 在Android Studio 和 Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"

    面向对象:曾经使用过SVN的同学. (因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器. 所以连S ...

  5. 昼猫笔记 JavaScript -- 异步执行 | 定时器真的定时执行?

      本篇主要内容:异步.定时器引发的思考 预计阅读时间:8分钟 了解 我们都知道在js中定时器有两种  setInterval()  . setTimeout()   setInterval() :按 ...

  6. tensorflow lite的demo在android studio上环境搭建

    由于很久没有接触过Android开发,而且最早用的是eclipse,所以这个demo在android studio上的搭建过程,真的是踩了不少坑.记录这篇文章,纯粹是给自己一点收获. 环境搭建的过程, ...

  7. 第二章:Android Studio概述(二)[学习Android Studio汉化教程]

    The Main Menu Bar 主菜单栏  主菜单栏位于Android Studio的最上面,你几乎可以利用主菜单和其子菜单来执行任何操作.不像Android Studio中其他的一些菜单,主菜单 ...

  8. [osx] android studio下修改avd的hosts文件

    1. 启动avd 安装/启动avd就不说啦,可以直接在android studio里面操作的 2. 进入adb目录 当然是打开终端来敲命令啦. cd /Users/birdylee/Library/A ...

  9. [Learn Android Studio 汉化教程]第四章 : Refactoring Code

    [Learn Android Studio 汉化教程]第四章 : Refactoring Code 第四章 Refactoring Code    重构代码 在Android Studio中开发,解决 ...

随机推荐

  1. POJ2955 Brackets —— 区间DP

    题目链接:https://vjudge.net/problem/POJ-2955 Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Su ...

  2. No tests found with test runner 'JUnit 3'

    报异常:No tests found with test runner 'JUnit 3' 解决方案: 主要因为你当前建的JUnit类是3的版本,将该类备份,重新创建一个类. 1.右键目录New--O ...

  3. docker hub下载慢解决方法 使用daocloud的mirror

    见:http://blog.csdn.net/dingsai88/article/details/52638758

  4. 笔记本电脑处理器(CPU)性能排行榜

    笔记本电脑处理器(CPU)性能排行榜 本排行榜随新款处理器(CPU)的发布而随时更新.更新日期:2012年7月15日   排名 型号 二级+三级缓存 前端总线(MHz) 功率(瓦) 主频(MHz) 核 ...

  5. Java使用Jacob将Word、Excel、PPT转化成PDF

    使用Jacob将金山WPS转化成PDF,其中WPS文字使用KWPS.Aplication.Excel表格是KET.Application.演示文档是KWPP.Application,废话不多说,直接上 ...

  6. B. Chris and Magic Square

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  7. 1-1 课程导学 & 1-2 项目需求分析,技术分解.

    1-1 课程导学 1-2 项目需求分析,技术分解. 要有一定的dart基础,了解安卓和ios的一些普通的开发

  8. C++笔试题(七)

    微软研究院是一个听起来就牛B的地方啊,反正我是进不去,不过不妨碍我看看他的笔试题到底是怎么样的.下面四道题就是微软研究院的笔试题目,题后附有我的解答.微软研究院(亚洲)的网址是:http://rese ...

  9. 洛谷P1850 换教室(概率dp)

    传送门 我的floyd竟然写错了?今年NOIP怕不是要爆零了? 这就是一个概率dp 我们用$dp[i][j][k]$表示在第$i$个时间段,已经申请了$j$次,$k$表示本次换或不换,然后直接暴力转移 ...

  10. 在 React项目中使用 bootstrap

    在使用create-react-app 创建的项目中使用 bootstrap; 安装react-bootstrap; npm install react-bootstrap --savenpm ins ...