Android 定时器的实现(一)
来源:互联网 发布:windows装mac双系统 编辑:程序博客网 时间:2024/05/29 17:29
1, Handler 加 Thread 的 sleep 方法
public class MainActivity extends Activity { private Button mButton; private MyThread myThread = new MyThread(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) findViewById(R.id.main_view_button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myThread.cancel(); } }); new Thread(myThread).start(); } Handler handler = new Handler() { public void handleMessage(Message msg) { if (myThread.isCancel()) return; super.handleMessage(msg); } }; public class MyThread implements Runnable { private boolean bCancel = false; @Override public void run() { while (true) { try { if (! isCancel()) { // 线程暂停10s Thread.sleep(10 * 1000); Message message = Message.obtain(); message.what = 0x001; handler.sendMessage(message); } } catch (InterruptedException e) { e.printStackTrace(); } } } public boolean isCancel() { return bCancel; } public void cancel() { this.bCancel = true; } }}
2, Handler的postDelayed(Runnable, long)方法
public class MainActivity extends Activity { Handler handler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler.postDelayed(runnable, 10 * 1000); } Runnable runnable = new Runnable() { @Override public void run() { Log.v(TAG, "do some thing"); handler.postDelayed(this , 10 * 1000); } };}
停止计时器
handler.removeCallbacks(runnable);
3. Handler + Timer + TimerTask
public class MainActivity extends Activity { private final Timer timer = new Timer(); private TimerTask task = new TimerTask() { @Override public void run() { Message message = Message.obtain(); message.what = 0x001; handler.sendMessage(message); } }; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { Log.v(TAG,"handleMessage"); super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); timer.schedule(task, 10000, 10000); }}
取消的方法:
timer.cancel()
0 0
- Android 定时器的实现(一)
- android 定时器实现一
- android 定时器的实现
- android定时器的实现
- android 定时器的实现
- Android 定时器的实现
- Android简单定时器的实现
- Android实现定时器的方法
- android 定时器的实现比较
- Android实现定时器的方法
- Spring定时器的两种实现方式一(timer)
- Android - Android实现定时器的方法
- Android 定时器的实现(二) ---- 使用 AlarmManager
- Android 定时器的三种实现
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- android 定时器的3种实现方法
- Codeforces Round #320 (Div. 2) 579B. Finding Team Member
- 欢迎使用CSDN-markdown编辑器
- 实验1正篇——引导PC
- Codeforces Round #320 (Div. 2)578B."Or" Game
- 黑马程序员——JavaSE之学习IO流的心得(一)
- Android 定时器的实现(一)
- Android数据库简单操作之创建数据库
- java 统计数组中各元素出现的次数
- Android 数据传递方式
- 关于testlink与缺陷追踪工具mantis的连接
- 51nod 正整数分组(dp_思考题)
- 常用数据库 JDBC URL 格式
- Ubuntu Chromium安装Flash Player
- LeetCode(118) Pascal's Triangle