依旧使用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中的分秒计时器通过`Handler`、`Runnable`以及自定义的`Timer`类实现,可以轻松地在应用中添加暂停和继续的功能。这个过程涉及到对时间的管理、UI的实时更新以及事件处理的机制,对于Android开发者...
这个“安卓Android源码——多线程断点下载.zip”文件很可能包含了实现这一功能的源代码示例。以下是对这一技术的详细说明: 1. **多线程下载**:传统的单线程下载方式容易受到网络波动的影响,速度可能较慢。多线程...
本资料包"安卓Android源码——安卓Android多线程断点续传下载+在线播放音乐.zip"提供了一个完整的示例,涵盖了多线程技术、断点续传下载以及音乐在线播放的关键知识点。现在,我们将详细探讨这些核心概念。 首先,...
总的来说,Android多线程断点下载涉及到文件操作、网络请求、多线程编程、数据同步、异常处理等多个方面的知识,是Android开发者必备的技能之一。通过理解并实践这些源码,可以帮助开发者更深入地掌握Android应用...
在Android开发中,秒表和倒计时功能是常见的需求,比如在运动应用、游戏或者计时类应用中。这个压缩包"Android源码——秒表倒计时源码.zip"很可能包含了一个实现这两种功能的示例代码。下面将详细探讨Android平台下...
在Android开发中,进度条(ProgressBar)是一种常见的UI组件,用于显示某个操作的进度或等待状态,例如数据加载、文件下载等。本篇将详细探讨如何在Android应用中实现进度条的演示,以及相关的源码解析和工具使用。 ...
这个压缩包 "安卓Android源码——ImageViewEx 支持Gif显示的ImageView.rar" 提供了一个名为 `ImageViewEx` 的自定义视图,专门用于支持GIF格式的显示。 1. **ImageViewEx 源码解析**: `ImageViewEx` 是对原生 `...
可以使用`Handler`或`LiveData`来在主线程中更新UI,同时提供暂停、恢复和取消下载的功能。 8. **错误处理与重试机制**:网络问题可能导致下载失败,因此需要适当的错误处理和重试机制。比如,当下载失败时,可以...
在Android中,我们可以使用Java语言进行开发,利用系统提供的`Handler`和`Runnable`接口来实现时间的更新和回调。`Handler`用于发送和处理消息,`Runnable`则作为可执行的任务实体。以下是实现秒表和倒计时的基本...
自定义的GifView还可以扩展以支持用户交互,例如暂停、播放、快进、快退等操作。这些可以通过监听触摸事件并在相应的方法中控制GIF动画的播放状态。 9. **适配各种屏幕尺寸和分辨率** 为了适应不同的设备,...
在主线程中直接进行长时间操作会阻塞UI,因此通常会使用`runOnUiThread()`、`View.post()`或`Handler`将更新任务放到UI线程执行。 6. **SharedPreferences**: 为了保存和恢复秒表状态,可以利用`...
Android的Handler、Looper和Runnable接口可用于实现线程间的通信。 5. **游戏资源管理**:PlanGame可能包含大量的图像、音频和动画资源。Android提供了Bitmap、MediaPlayer和Animation类来加载和管理这些资源,同时...
在"Android源码——秒表源码.zip"这个压缩包中,包含了一个基本的秒表应用的源代码,这对于学习Android编程,尤其是计时器(CountdownTimer)和Handler机制的开发者来说是非常有价值的资源。 首先,我们来看"源码...
在UI更新方面,Android提供了一个叫做Handler的机制,它可以将更新任务从后台线程发送到主线程,确保在用户界面上安全地显示实时变化的时间。此外,考虑到韩国风格,可能还涉及到了特定的UI设计元素,如字体、颜色、...
3. **UI设计**: 应用的界面通常包含开始、暂停、重置等按钮,以及显示时间的文本视图。这需要对`LinearLayout`、`RelativeLayout`或`ConstraintLayout`等布局管理器有深入理解,以及如何使用`TextView`和`Button`...
2. 用户界面(UI):游戏的界面设计包括游戏菜单、暂停/继续选项、得分显示等,使用Android的View和Layout系统可以轻松实现。 3. 游戏对象:飞机、子弹、敌机等游戏元素都应视为独立对象,每个对象都有自己的属性...
10. **异步处理和线程**:为了确保UI的响应性,MusicBox可能使用AsyncTask或Handler/Looper机制来处理耗时的操作,如加载音乐库或从网络获取流媒体。 通过对MusicBox源码的研究,开发者可以学习到如何创建高效的...
这个"Android源码——天天动听悬浮歌词源码.zip"压缩包提供了实现这一功能的源代码,对于学习和理解Android应用开发,尤其是歌词同步显示的技术细节具有很高的参考价值。 首先,我们来探讨Android应用开发的基础。...