1. 程式人生 > >android studio 定時器操作 實現定時執行相關任務

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