大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.
首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:
- package com.android.tutor;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.os.Bundle;
- public class HandlerDemo extends Activity {
-
-
- private int title = 0;
-
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- Timer timer = new Timer();
- timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
- }
-
- private class MyTask extends TimerTask{
- @Override
- public void run() {
-
- setTitle("Welcome to Mr Wei's blog " + title);
- title ++;
- }
- }
- }
然而当我们执行程序,并不能达到我们预期的效果,所以Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。
所以我们修改后的代码如下:
- package com.android.tutor;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- public class HandlerDemo extends Activity {
-
-
- private int title = 0;
-
- private Handler mHandler = new Handler(){
-
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case 1:
- updateTitle();
- break;
- }
- };
- };
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- Timer timer = new Timer();
- timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
- }
-
- private class MyTask extends TimerTask{
- @Override
- public void run() {
-
- Message message = new Message();
- message.what = 1;
- mHandler.sendMessage(message);
-
- }
- }
-
-
- public void updateTitle(){
-
- setTitle("Welcome to Mr Wei's blog " + title);
- title ++;
- }
- }
分享到:
相关推荐
在这种场景下,Android提供了多种机制来实现定时任务,包括`Timer`、`TimerTask`以及`Handler`。这三种工具可以协同工作,确保数据更新和View更新的同步,从而避免界面卡顿和不流畅的问题。 1. **Android Timer** ...
下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...
在Java和Android中,常见的定时器实现方式有多种,本示例将聚焦于Handler和TimerTask的结合使用。下面我们将详细探讨这两种机制以及如何通过它们实现一个简易定时器。 首先,Handler是Android中的一个核心组件,...
### Timer与TimerTask详解 在Java编程语言中,`Timer`和`TimerTask`是用于执行定时任务的重要类。这两个类通常被用来处理那些需要在指定时间或周期性执行的任务,比如定时清理缓存、定时更新数据库等场景。 #### ...
### Timer和TimerTask的使用详解 #### 一、引言 `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现...
这时,`TimerTask` 和 `Timer` 类就派上了用场。本篇将详细介绍如何在Android中使用`TimerTask`来实现定时任务,并通过一个简单的Demo进行示例说明。 `TimerTask`是Java提供的一个定时执行任务的类,它继承自`...
Java 计时器 Timer 和 TimerTask 用法总结 Java 中的计时器(Timer)和 TimerTask 是一种常用的延迟执行技术,用于实现延迟执行某个任务或事件。下面将详细介绍 Timer 和 TimerTask 的用法和实现原理。 Timer ...
在Java编程语言中,`TimerTask`和`Timer`是两个关键类,它们用于实现定时任务和调度。这两个类在处理需要定期执行的任务时非常有用,例如数据刷新、任务调度或者周期性的系统检查等。本篇文章将深入探讨`TimerTask`...
本教程将详细介绍如何利用ViewPager实现手动切换,并结合Timer和Handler来实现自动切换,从而创建一个平滑且无限循环的滑动效果。 首先,ViewPager的核心在于其PagerAdapter子类,如FragmentPagerAdapter或...
lv_timer_handler放到main主循环运行DSLogic-la-230111-114844.dsl
本篇将重点讲解如何利用`Timer`和`TimerTask`这两个工具来实现这样的功能,特别是针对`TextView`控件。 `Timer`类是Java.util包中的一个类,它提供了调度任务在未来某个时间点执行的能力。而`TimerTask`是`Timer`类...
这个项目中,开发者使用了ViewPager组件配合Timer和Handler来实现这一功能。下面我们将详细探讨这些知识点。 首先,**ViewPager**是Android SDK中的一个控件,它允许用户在多个视图之间进行水平滑动。在广告展示或...
在标题“用ViewPager实现手动切换,用Timer + Handler实现自动切换,左右完美无限滑动效果非常平滑”中,我们关注的是如何利用ViewPager实现手动切换,并通过Timer和Handler来自动切换页面,同时实现平滑的无限滚动...
本教程将详细讲解如何利用ViewPager结合Timer和Handler来实现手动切换以及自动切换功能,使得页面左右滑动时达到平滑且无限循环的效果。 首先,我们要了解ViewPager的基本使用。ViewPager继承自ViewGroup,它会根据...
timer.schedule(new TimerTask() { @Override public void run() { handler.post(autoSwitchTask); } }, AUTO_SWITCH_INTERVAL); ``` 最后,当需要停止自动切换时,记得取消Handler的任务和销毁Timer: ```...
在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们构成了Java的定时执行机制。这两个类在处理周期性任务或者延迟任务时非常有用,它们可以帮助开发者实现程序在特定时间点或者按照一定间隔执行特定操作的...
1. 创建一个Timer对象,调用`Timer.schedule(TimerTask task, long delay, long period)`方法来定时执行任务。这里的任务通常是切换到下一个页面。 2. 编写一个继承自Runnable的类,重写`run()`方法,在其中调用...
本示例代码着重讲解如何利用ViewPager实现手动切换以及通过Timer和Handler自动切换,从而创建一个平滑且无限循环的滑动效果。 首先,ViewPager的核心在于其PagerAdapter子类,它负责加载和管理页面内容。在自定义的...
Java中的Timer和TimerTask简介(附完整代码实例)。 在Java中,Timer和TimerTask是两个经常用来实现定时器的类。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求。 Timer是一种定时器工具,用来在一...