`
IT阿狸
  • 浏览: 67685 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android——显示时间和暂停时间(Handler类操作线程)

阅读更多

依旧使用Android 2.3.3版本

 

一、Handler类:

1.主要接受子线程发送的数据,并用此数据配合主线程更新UI。

2.当应用程序启动时,Android首先会开启一个主线程(也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发。

 

 

二、界面


 

 

三、main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/info"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="当前时间"
        android:textColor="#0f0"
        android:textStyle="bold" />

    <Button
        android:id="@+id/startButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始" />

    <Button
        android:id="@+id/endButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止" />

</LinearLayout>

 

 

四、Activity类

package org.e276.time;

import java.sql.Time;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

/**
 * Handler类操作线程的实例
 * 
 * @author miao
 * 
 */
public class HandleDemoActivity extends Activity {

	private Button startButton;// 开始
	private Button endButton;// 结束
	private TextView textView;// 显示文本

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 根据id获得控件对象
		startButton = (Button) findViewById(R.id.startButton);
		endButton = (Button) findViewById(R.id.endButton);
		textView = (TextView) findViewById(R.id.info);
		// 为控件设置监听器
		startButton.setOnClickListener(new StartButtonListener());
		endButton.setOnClickListener(new EndButtonListener());
	}

	// 创建Handler对象
	Handler handler = new Handler();
	// 新建一个线程对
	Runnable updateThread = new Runnable() {
		// 将要执行的曹祖哦写在线程对象的run方法当中
		public void run() {
			// 输出当前时间
			textView.setText("当前时间:" + new Time(System.currentTimeMillis()));
			/*
			 * 调用Handler的postDelayed()方法
			 * 这个方法的作用是:将要执行的线程对象放入到队列当中,待时间结束后,运行指定的线程对象
			 * 第一个参数是Runnable类型:将要执行的线程对象,第二个参数是long类型:延迟的时间,以毫秒为单位
			 */
			handler.postDelayed(updateThread, 1000);
		}
	};

	// 开始按钮
	class StartButtonListener implements OnClickListener {

		public void onClick(View v) {
			// 调用Handler的post()方法,将要执行的线程对象放到队列当中,如果队列中没有其他线程,就马上运行
			handler.post(updateThread);
		}

	}

	// 结束按钮
	class EndButtonListener implements OnClickListener {

		public void onClick(View v) {
			// 调用Handler的removeCallbacks()方法,删除队列当中未执行的线程对象
			handler.removeCallbacks(updateThread);
		}

	}

}

 

 

五、demo

Android-ShowTime.zip

  • 大小: 19.2 KB
分享到:
评论

相关推荐

    android开发——分秒计时器(可暂停/继续)

    总的来说,Android中的分秒计时器通过`Handler`、`Runnable`以及自定义的`Timer`类实现,可以轻松地在应用中添加暂停和继续的功能。这个过程涉及到对时间的管理、UI的实时更新以及事件处理的机制,对于Android开发者...

    安卓Android源码——多线程断点下载.zip

    这个“安卓Android源码——多线程断点下载.zip”文件很可能包含了实现这一功能的源代码示例。以下是对这一技术的详细说明: 1. **多线程下载**:传统的单线程下载方式容易受到网络波动的影响,速度可能较慢。多线程...

    安卓Android源码——安卓Android多线程断点续传下载+在线播放音乐.zip

    本资料包"安卓Android源码——安卓Android多线程断点续传下载+在线播放音乐.zip"提供了一个完整的示例,涵盖了多线程技术、断点续传下载以及音乐在线播放的关键知识点。现在,我们将详细探讨这些核心概念。 首先,...

    Android源码——多线程断点下载源码.7z

    总的来说,Android多线程断点下载涉及到文件操作、网络请求、多线程编程、数据同步、异常处理等多个方面的知识,是Android开发者必备的技能之一。通过理解并实践这些源码,可以帮助开发者更深入地掌握Android应用...

    Android源码——秒表倒计时源码.zip

    在Android开发中,秒表和倒计时功能是常见的需求,比如在运动应用、游戏或者计时类应用中。这个压缩包"Android源码——秒表倒计时源码.zip"很可能包含了一个实现这两种功能的示例代码。下面将详细探讨Android平台下...

    Android——进度条的演示

    在Android开发中,进度条(ProgressBar)是一种常见的UI组件,用于显示某个操作的进度或等待状态,例如数据加载、文件下载等。本篇将详细探讨如何在Android应用中实现进度条的演示,以及相关的源码解析和工具使用。 ...

    安卓Android源码——ImageViewEx 支持Gif显示的ImageView.rar

    这个压缩包 "安卓Android源码——ImageViewEx 支持Gif显示的ImageView.rar" 提供了一个名为 `ImageViewEx` 的自定义视图,专门用于支持GIF格式的显示。 1. **ImageViewEx 源码解析**: `ImageViewEx` 是对原生 `...

    安卓Android源码——精典源码之多线程断点下载.zip

    可以使用`Handler`或`LiveData`来在主线程中更新UI,同时提供暂停、恢复和取消下载的功能。 8. **错误处理与重试机制**:网络问题可能导致下载失败,因此需要适当的错误处理和重试机制。比如,当下载失败时,可以...

    安卓Android源码——秒表倒计时源码.zip

    在Android中,我们可以使用Java语言进行开发,利用系统提供的`Handler`和`Runnable`接口来实现时间的更新和回调。`Handler`用于发送和处理消息,`Runnable`则作为可执行的任务实体。以下是实现秒表和倒计时的基本...

    安卓Android源码——GifView.zip

    自定义的GifView还可以扩展以支持用户交互,例如暂停、播放、快进、快退等操作。这些可以通过监听触摸事件并在相应的方法中控制GIF动画的播放状态。 9. **适配各种屏幕尺寸和分辨率** 为了适应不同的设备,...

    安卓Android源码——秒表源码.zip

    在主线程中直接进行长时间操作会阻塞UI,因此通常会使用`runOnUiThread()`、`View.post()`或`Handler`将更新任务放到UI线程执行。 6. **SharedPreferences**: 为了保存和恢复秒表状态,可以利用`...

    安卓Android源码——PlanGame.rar

    Android的Handler、Looper和Runnable接口可用于实现线程间的通信。 5. **游戏资源管理**:PlanGame可能包含大量的图像、音频和动画资源。Android提供了Bitmap、MediaPlayer和Animation类来加载和管理这些资源,同时...

    Android源码——秒表源码.zip

    在"Android源码——秒表源码.zip"这个压缩包中,包含了一个基本的秒表应用的源代码,这对于学习Android编程,尤其是计时器(CountdownTimer)和Handler机制的开发者来说是非常有价值的资源。 首先,我们来看"源码...

    安卓Android源码——韩国风格的秒表源码.zip

    在UI更新方面,Android提供了一个叫做Handler的机制,它可以将更新任务从后台线程发送到主线程,确保在用户界面上安全地显示实时变化的时间。此外,考虑到韩国风格,可能还涉及到了特定的UI设计元素,如字体、颜色、...

    安卓Android源码——秒表源码.rar

    3. **UI设计**: 应用的界面通常包含开始、暂停、重置等按钮,以及显示时间的文本视图。这需要对`LinearLayout`、`RelativeLayout`或`ConstraintLayout`等布局管理器有深入理解,以及如何使用`TextView`和`Button`...

    安卓Android源码——安卓飞机游戏.zip

    2. 用户界面(UI):游戏的界面设计包括游戏菜单、暂停/继续选项、得分显示等,使用Android的View和Layout系统可以轻松实现。 3. 游戏对象:飞机、子弹、敌机等游戏元素都应视为独立对象,每个对象都有自己的属性...

    安卓Android源码——MusicBox.rar

    10. **异步处理和线程**:为了确保UI的响应性,MusicBox可能使用AsyncTask或Handler/Looper机制来处理耗时的操作,如加载音乐库或从网络获取流媒体。 通过对MusicBox源码的研究,开发者可以学习到如何创建高效的...

    Android源码——天天动听悬浮歌词源码.zip

    这个"Android源码——天天动听悬浮歌词源码.zip"压缩包提供了实现这一功能的源代码,对于学习和理解Android应用开发,尤其是歌词同步显示的技术细节具有很高的参考价值。 首先,我们来探讨Android应用开发的基础。...

Global site tag (gtag.js) - Google Analytics