android Timer的用法实例

来源:互联网 发布:爱淘宝1元口令 编辑:程序博客网 时间:2024/05/01 02:54

写惯java的人可能会认为Timer的使用应该如下:

程序功能很简单:10秒后,SetTitle为“hear me?”,然后,实际上这样做是不行的,这跟Android的线程安全有关!

Java代码

1.package com.ray.test;

2.

3.import java.util.Timer;

4.import java.util.TimerTask;

5.

6.import android.app.Activity;

7.import android.os.Bundle;

8.

9.public class JavaTimer extends Activity {

10.

11. Timer timer = new Timer();

12. TimerTask task = new TimerTask(){

13.

14. public void run() {

15.         setTitle("hear me?");

16. }

17.

18. };

19. public void onCreate(Bundle savedInstanceState) {

20.           super.onCreate(savedInstanceState);

21.           setContentView(R.layout.main);

22.           timer.schedule(task, 10000);

23. }

24.}


但实际上的用法应该通过配合Handler来实现timer功能的!

Java代码

1.package com.ray.test;

2.

3.import java.util.Timer;

4.import java.util.TimerTask;

5.

6.import android.app.Activity;

7.import android.os.Bundle;

8.import android.os.Handler;

9.import android.os.Message;

10.

11.public class TestTimer extends Activity {

12.

13. Timer timer = new Timer();

14. Handler handler = new Handler(){

15.

16. public void handleMessage(Message msg) {

17. switch (msg.what) {

18. case 1:

19. setTitle("hear me?");

20. break;

21. }

22. super.handleMessage(msg);

23. }

24.

25. };

26. TimerTask task = new TimerTask(){

27.

28. public void run() {

29. Message message = new Message();

30. message.what = 1;

31. handler.sendMessage(message);

32. }

33.

34. };

35. public void onCreate(Bundle savedInstanceState) {

36. super.onCreate(savedInstanceState);

37. setContentView(R.layout.main);

38. timer.schedule(task, 10000);

39. }

40.}


原创粉丝点击