1. 程式人生 > >實現每隔一段時間,自動執行某個功能,比如自動提交資料到伺服器等

實現每隔一段時間,自動執行某個功能,比如自動提交資料到伺服器等

效果:

程式碼如下一個activity


package com.mytest;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 實現每隔一段時間,自動執行某個功能,比如自動提交資料到伺服器等
 */
public class MainActivity extends AppCompatActivity {
    final Timer timer = new Timer();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        autoSubmit();
    }



    /**
     * 用執行緒實現每隔一段時間自動執行程式碼
     */
    private  void autoSubmit(){
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                Message message=new Message();
                message.what=0;
                mHandler.sendMessage(message);

                //這裡填寫自動執行的程式碼
            }
        },1000,6000);// delay 表示初始化延時。period 表示前一次執行結束到下一次執行開始的間隔時間
        //1秒=1000毫秒
        //1分鐘=60000毫秒
        //10分鐘=600000毫秒
    }
    
    private  Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 0){
                System.out.println("每隔一段時間執行一次");
                Toast.makeText(MainActivity.this,"每隔一段時間執行一次",Toast.LENGTH_LONG).show();
            }
        }
    };

    /**
     * 關閉定時自動提交
     */
    private void cancelTimer(){
        timer.cancel();
    }
}