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. js截取小数点后面2位

    1.substr var str = "Hello world!"; document.write(str.substr(3)); 输出:lo world! var str = & ...

  2. POJ 1236 Network of Schools (校园网)

    Description 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意如果 B 在 A 学校的分发列表中,那么 A 不必也在 B 学校的 ...

  3. jetty源码剖析

    最近使用jetty自己写了一个web server,现在闲了花了一天的时间看了一jetty的源代码,主要以server的启动为主线,进行了剖析,经过阅读对jetty的源码大赞,写的简洁.清晰,架构也不 ...

  4. hdu-5120 Intersection(计算几何)

    题目链接: Intersection Time Limit: 4000/4000 MS (Java/Others)     Memory Limit: 512000/512000 K (Java/Ot ...

  5. VC++静态连接库

    目录 第1章静态连接库    1 1.1 同名函数的选择    1 1.2 模块合并    2 1.2.1 模块替换    4 1.3 内联函数    4 第1章静态连接库 静态连接库与动态连接库一样 ...

  6. BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP

    BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP Description 受到秘鲁的马丘比丘的新式水上乐园的启发,Farmer John决定也为奶牛们建 一个水上乐园. ...

  7. macbook pro 下eclipse配置svn插件

    eclipse中最常使用的SVN插件是subclipse,先到subclipse官网:http://subclipse.tigris.org下载该插件.   如上图,点击“Download and I ...

  8. html&css题

    1.对WEB标准以及W3C的理解与认识?(1)web标准规范要求,书写标签必须闭合.标签小写.不乱嵌套,可提高搜索机器人对网页内容的搜索几率:(2)建议使用外链css和js脚本,从而达到结构与行为.结 ...

  9. laravel的核心概念:服务提供者provider解析

    我们知道laravel和核心就是一个IoC容器, 被称之为服务容器. 那么作为IoC容器, 就必须要有绑定对象生成器的工作.  在laravel中是服务提供者来项服务容器中绑定对象生成器的. 百牛信息 ...

  10. pkill详解

    pkill详解 一:含义: 是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序:如果您想杀掉单个进程,请用kill来杀掉. 二 ...