`

将耗时的操作放入handler中进行处理

 
阅读更多
// 初始化recList
	public void initRecList() {
		new Thread() {
			public void run() {
				try {
					sleep(2000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				doInHandler();

			};
		}.start();

	}

	public void doInHandler() {

		if (!SDCard.getFileSavePath(pathString).toString().equals(null)) {
			recList.clear();
			handler.post(new Runnable() {
				public void run() {
					// 取得指定位置的文件,添加到recList中
					File home = new File(pathString);
					if (home.listFiles(new MusicFilter()).length > 0) {
						for (File file : home.listFiles(new MusicFilter())) {
							// 将录音文件的路径添加进recList
							recList.add(file.getPath().toString());
						}
					}
					recAdapter = new ListRecAdapter(getApplicationContext(),
							recList);
					recListView.setAdapter(recAdapter);
					// 关闭滚动条
					progressdialog.dismiss();
				}
			});
		} else {
			ShowMsg.showToast(getApplicationContext(), "请插入内存卡!");
		}

	}

 

分享到:
评论

相关推荐

    Handler耗时操作

    `Handler.sendMessage(Message)`方法将`Message`放入消息队列。 4. **处理耗时操作**:在后台线程执行耗时任务,如网络下载,完成后通过`Handler`的`sendMessage()`或`post()`方法将结果发送回主线程。这样可以避免...

    Android线程操作 handler demo

    Handler是Android中处理消息和回调的核心组件,它与Looper和Message紧密配合,实现了线程间的通信。以下是你需要了解的关键概念: 1. **主线程与工作线程**:Android应用默认有一个主线程,负责处理UI更新和用户...

    handler异步更新

    // 将处理结果放入Message handler.sendMessage(message); // 发送消息 } }).start(); ``` 3. Looper在主线程中持续运行,接收到子线程发送的消息后,调用Handler的handleMessage()方法,执行相应的UI更新逻辑。...

    Android_Handler详解(一)

    - **接收消息**:Handler会将发送的消息放入主线程的消息队列,Looper会按照先进先出的原则取出消息并调用handleMessage()方法。 3. 为什么要用Handler? 在Android中,主线程(UI线程)负责处理用户交互和界面...

    模拟Android Handler机制Demo

    通过Handler、Looper和Message的协同工作,开发者可以在后台线程执行耗时操作,而将UI更新等轻量级任务交由主线程处理,避免了UI卡顿,提升了用户体验。在实际项目中,我们还需要关注线程安全问题,防止因不当的线程...

    Handler的基本用法

    - **send与handle**:在子线程中,调用`Handler.sendMessage(Message)`或`Handler.post(Runnable)`将消息放入消息队列。主线程中的Looper会取出消息,调用Handler的`handleMessage(Message)`方法进行处理,此时可以...

    handler用法

    Handler则负责创建Message,设置Message的属性(如目标方法、数据等),并通过post()或sendMessage()方法将Message放入Message Queue。最后,Handler对象的handleMessage()方法会被调用,执行相应的逻辑。 下面我们...

    Handlerjava代码实现

    `Handler`提供了多种发送消息的方法,如`sendMessage(Message msg)`、`sendMessageDelayed(Message msg, long delayMillis)`和`post(Runnable r)`等,它们会将消息放入消息队列,等待`Looper`处理。 除了直接发送`...

    Android应用程序消息处理机制(Looper、Handler)分析

    通过Handler的sendMessage()或post()方法,可以将Message对象或Runnable对象放入消息队列。这些消息包含了执行的任务和回调信息,Handler的handleMessage()方法会在适当的时间被调用来执行消息中的任务。 Message是...

    常见handlerapi

    - 使用`Handler`的`send`或`post`方法将消息放入消息队列。 - 在`handleMessage()`或`Runnable.run()`中处理消息,更新UI。 6. **注意事项**: - 为了避免内存泄漏,记得在不再使用`Handler`时调用`...

    Looper、Handler与HandlerThread

    3. 使用主线程中的Handler实例,通过`sendMessage()`或者`post()`方法发送消息到后台线程的Handler,这些消息会被放入后台线程的Message Queue。 4. Looper会不断循环,从Message Queue中取出消息,调用Handler的`...

    利用Handler来更新android的UI

    `Handler`的`sendMessage()`方法最终会调用`enqueueMessage()`,将消息放入`MessageQueue`。当`Looper`检测到有新消息时,会调用`handleMessage()`,在这里你可以编写更新UI的代码。 5. 注意事项 - 由于`Handler`是...

    Handler的基本使用

    在这个例子中,子线程执行完耗时操作后,通过`Handler`发送一个包含新文本的消息到主线程,主线程的`Handler`接收到消息后,将新文本设置到`TextView`上,实现了非阻塞地更新UI。 了解`Handler`的工作原理和使用...

    Android 多线程:使用Thread和Handler

    在Android中,我们可以创建一个Thread实例,然后重写它的run()方法,将耗时操作放入其中。例如,以下代码展示了如何使用Thread下载图片: ```java Thread thread = new Thread(new Runnable() { @Override public...

    Android_Handler的线程队列Demo

    - 通过`sendMessage(Message msg)`或`sendMessageDelayed(Message msg, long delayMillis)`将消息放入消息队列,指定延迟时间后由Looper处理。 - Handler还可以通过`post(Runnable r)`或者`postDelayed(Runnable r...

    Handler消息机制和异步加载

    Handler消息机制是Android系统中处理线程间通信的重要方式,它与Looper和Message紧密关联,构建了一套完整的异步处理模型。在这个模型中,Handler主要负责发送和处理Message,Looper负责在一个线程中循环地读取...

    Android源代码:HandlerDemo

    在Android开发中,`Handler`是一个至关重要的组件,它用于在主线程中处理来自其他线程的消息,确保UI更新操作的正确执行。本项目“Android源代码:HandlerDemo”将深入探讨`Handler`机制及其在多线程环境中的应用。 ...

    handler线程

    - 当我们需要在其他线程中向主线程发送消息时,可以先创建一个 `Handler`,然后调用 `sendMessage` 方法将消息放入 `MessageQueue`。 3. **处理消息阶段**: - `Looper` 会不断地从 `MessageQueue` 中取出消息,...

    android 更新 UI 线程 handler

    `sendMessage()`可以在任何线程中调用,将消息放入消息队列,而`handleMessage()`则在Handler创建时指定的线程(通常是主线程)中运行。 为了更新UI,我们通常会在工作线程中创建一个Runnable对象,然后通过...

    Handler通信

    3. **发送Message**:使用`Handler`的`sendMessage()`或`post()`方法将`Message`发送出去,这实际上是将Message放入了主线程的MessageQueue中。 4. **Looper处理Message**:主线程的`Looper`不断从MessageQueue中...

Global site tag (gtag.js) - Google Analytics