注:在项目中,有时可能会有一些定时执行的任务,这时,一般都会在一个service中写一个定时器。
例:
Service类:
import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class TimerService extends Service {
Timer timer; //定时器
TimerTask task;//定时执行的任务
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
timer = new Timer();
task = new TimerTask() {
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("执行了一次定时任务");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
// 参数说明:1、任务2、延迟指定的时间后开始执行3、以指定的频率重复执行任务
timer.scheduleAtFixedRate(task, 1000, 1000);
super.onCreate();
}
@Override
public void onDestroy() {
System.out.println("停止了定时任务");
timer.cancel();
task.cancel();
super.onDestroy();
}
}
使用:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Button btn_start;
Button btn_stop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Intent intent =new Intent(MainActivity.this, TimerService.class);
btn_start = (Button) findViewById(R.id.btn_start);
btn_stop = (Button) findViewById(R.id.btn_stop);
btn_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startService(intent);
}
});
btn_stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
stopService(intent);
}
});
}
}