// 初始化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.sendMessage(Message)`方法将`Message`放入消息队列。 4. **处理耗时操作**:在后台线程执行耗时任务,如网络下载,完成后通过`Handler`的`sendMessage()`或`post()`方法将结果发送回主线程。这样可以避免...
Handler是Android中处理消息和回调的核心组件,它与Looper和Message紧密配合,实现了线程间的通信。以下是你需要了解的关键概念: 1. **主线程与工作线程**:Android应用默认有一个主线程,负责处理UI更新和用户...
// 将处理结果放入Message handler.sendMessage(message); // 发送消息 } }).start(); ``` 3. Looper在主线程中持续运行,接收到子线程发送的消息后,调用Handler的handleMessage()方法,执行相应的UI更新逻辑。...
- **接收消息**:Handler会将发送的消息放入主线程的消息队列,Looper会按照先进先出的原则取出消息并调用handleMessage()方法。 3. 为什么要用Handler? 在Android中,主线程(UI线程)负责处理用户交互和界面...
通过Handler、Looper和Message的协同工作,开发者可以在后台线程执行耗时操作,而将UI更新等轻量级任务交由主线程处理,避免了UI卡顿,提升了用户体验。在实际项目中,我们还需要关注线程安全问题,防止因不当的线程...
- **send与handle**:在子线程中,调用`Handler.sendMessage(Message)`或`Handler.post(Runnable)`将消息放入消息队列。主线程中的Looper会取出消息,调用Handler的`handleMessage(Message)`方法进行处理,此时可以...
Handler则负责创建Message,设置Message的属性(如目标方法、数据等),并通过post()或sendMessage()方法将Message放入Message Queue。最后,Handler对象的handleMessage()方法会被调用,执行相应的逻辑。 下面我们...
`Handler`提供了多种发送消息的方法,如`sendMessage(Message msg)`、`sendMessageDelayed(Message msg, long delayMillis)`和`post(Runnable r)`等,它们会将消息放入消息队列,等待`Looper`处理。 除了直接发送`...
通过Handler的sendMessage()或post()方法,可以将Message对象或Runnable对象放入消息队列。这些消息包含了执行的任务和回调信息,Handler的handleMessage()方法会在适当的时间被调用来执行消息中的任务。 Message是...
- 使用`Handler`的`send`或`post`方法将消息放入消息队列。 - 在`handleMessage()`或`Runnable.run()`中处理消息,更新UI。 6. **注意事项**: - 为了避免内存泄漏,记得在不再使用`Handler`时调用`...
3. 使用主线程中的Handler实例,通过`sendMessage()`或者`post()`方法发送消息到后台线程的Handler,这些消息会被放入后台线程的Message Queue。 4. Looper会不断循环,从Message Queue中取出消息,调用Handler的`...
`Handler`的`sendMessage()`方法最终会调用`enqueueMessage()`,将消息放入`MessageQueue`。当`Looper`检测到有新消息时,会调用`handleMessage()`,在这里你可以编写更新UI的代码。 5. 注意事项 - 由于`Handler`是...
在这个例子中,子线程执行完耗时操作后,通过`Handler`发送一个包含新文本的消息到主线程,主线程的`Handler`接收到消息后,将新文本设置到`TextView`上,实现了非阻塞地更新UI。 了解`Handler`的工作原理和使用...
在Android中,我们可以创建一个Thread实例,然后重写它的run()方法,将耗时操作放入其中。例如,以下代码展示了如何使用Thread下载图片: ```java Thread thread = new Thread(new Runnable() { @Override public...
- 通过`sendMessage(Message msg)`或`sendMessageDelayed(Message msg, long delayMillis)`将消息放入消息队列,指定延迟时间后由Looper处理。 - Handler还可以通过`post(Runnable r)`或者`postDelayed(Runnable r...
Handler消息机制是Android系统中处理线程间通信的重要方式,它与Looper和Message紧密关联,构建了一套完整的异步处理模型。在这个模型中,Handler主要负责发送和处理Message,Looper负责在一个线程中循环地读取...
在Android开发中,`Handler`是一个至关重要的组件,它用于在主线程中处理来自其他线程的消息,确保UI更新操作的正确执行。本项目“Android源代码:HandlerDemo”将深入探讨`Handler`机制及其在多线程环境中的应用。 ...
- 当我们需要在其他线程中向主线程发送消息时,可以先创建一个 `Handler`,然后调用 `sendMessage` 方法将消息放入 `MessageQueue`。 3. **处理消息阶段**: - `Looper` 会不断地从 `MessageQueue` 中取出消息,...
`sendMessage()`可以在任何线程中调用,将消息放入消息队列,而`handleMessage()`则在Handler创建时指定的线程(通常是主线程)中运行。 为了更新UI,我们通常会在工作线程中创建一个Runnable对象,然后通过...
3. **发送Message**:使用`Handler`的`sendMessage()`或`post()`方法将`Message`发送出去,这实际上是将Message放入了主线程的MessageQueue中。 4. **Looper处理Message**:主线程的`Looper`不断从MessageQueue中...