void java.util.Timer.schedule(TimerTask task, long delay, long period)
第一个参数,是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口。
第二个参数的意思是,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行run() 方法。
第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。
然后使用该方式实现图片定时循环切换,代码如下:
1 import java.util.Timer; 2 import java.util.TimerTask; 3 4 import android.app.Activity; 5 import android.os.Bundle; 6 import android.os.Handler; 7 import android.os.Message; 8 import android.widget.ImageView; 9 10 public class HandlerActivity extends Activity { 11 // 要切换的照片,放在drawable文件夹下 12 int[] images = { R.drawable.img1, R.drawable.img2, R.drawable.img3, }; 13 // Message传递标志 14 int SIGN = 17; 15 // 照片索引 16 int num = 0; 17 18 @Override 19 public void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.main); 22 final ImageView image = (ImageView) findViewById(R.id.image); 23 final Handler handler = new Handler() { 24 @Override 25 public void handleMessage(Message msg) { 26 // TODO Auto-generated method stub 27 super.handleMessage(msg); 28 if (msg.what == SIGN) { 29 image.setImageResource(images[num++]); 30 if (num >= images.length) { 31 num = 0; 32 } 33 } 34 } 35 }; 36 new Timer().schedule(new TimerTask() { 37 @Override 38 public void run() { 39 // TODO Auto-generated method stub 40 Message msg = new Message(); 41 msg.what = SIGN; 42 handler.sendMessage(msg); 43 } 44 }, 1000, 500); 45 } 46 }