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即可

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM