Android Timer,TimerTask简单的使用
16lz
2021-01-23
private void init() { mTimer = new Timer(); mTimerTask = new TimerTask() { @Override public void run() { //System.out.println("---> count=" + count); DoTask() ; //tView.setText(buff.toString()) ; count++ ; if (count == -1) { mTimer.cancel(); } } }; //开始一个定时任务 mTimer.schedule(mTimerTask, 2000,4000); }
mTimer.schedule(mTimerTask, 2000,4000);中第一个参数是自定义的一个TimerTask对象,对其的run方法实现我们要循环调用的代码。第二个参数是延时多少毫秒开始使用,第三个参数表示,间隔多少毫秒去调用一次。
完整的一个代码,实现的去调用本地服务器上的一个csv文件。
java文件
package com.example.getcsvtest;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class ScvTestActivity extends Activity {private int count = 0 ;private Timer mTimer; private TimerTask mTimerTask;private TextView tView ;public StringBuffer buff = new StringBuffer() ;//privateMyAsyncTask myAsyncTask ;private Handler handler = new Handler(){public void handleMessage(Message msg){tView.setText(buff.toString()+count) ;}}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scv_test); tView = (TextView) findViewById(R.id.TVIEW_ID) ; init() ; } private void init() { mTimer = new Timer(); mTimerTask = new TimerTask() { @Override public void run() { //System.out.println("---> count=" + count); DoTask() ; //tView.setText(buff.toString()) ; count++ ; if (count == -1) { mTimer.cancel(); } } }; //开始一个定时任务 mTimer.schedule(mTimerTask, 2000,4000); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.scv_test, menu); return true; } public void DoTask(){ new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubtry {URL url =new URL("http://10.0.2.2/1.csv") ;HttpURLConnection connection =(HttpURLConnection) url.openConnection() ;connection.setRequestMethod("GET") ;connection.setConnectTimeout(8000) ;connection.setReadTimeout(8000) ;InputStream inStream = connection.getInputStream() ;BufferedReader reader = new BufferedReader(new InputStreamReader(inStream,"GB2312")) ;String line = null;int x = 0 ;buff.setLength(0);while((line=reader.readLine())!=null && x <3){System.out.println(line);String item[] = line.split(",");x++ ;buff.append("时间:"+item[0]+",溶解氧: "+item[1]) ;buff.append("\n") ;}Message msg = new Message() ;handler.sendMessage(msg) ;} catch (Exception e) {// TODO: handle exceptione.printStackTrace() ;}}}).start() ; } }Xml布局文件
Xml的配置文件要上
更多相关文章
- android 代码中设置字体大小
- Android用代码安装APK,不用选择“打包安装程序”
- No 98 · Android 下载文件及写入SD卡(摘)
- 【android开发】android操作文件
- Android 关于wifi管理的代码
- android 播放Raw文件夹下的音乐文件
- Android 屏幕截图 代码
- 转:android 实现 流媒体 播放远程mp3文件 代码
- Android 笔记.代码段