Android:线程通信与数据持久化

需积分: 10 2 下载量 9 浏览量 更新于2024-09-12 收藏 2KB TXT 举报
"这篇文档主要讨论了在Android平台上如何实现在不同线程间进行函数调用以及如何在应用中保存和读取数值。通过使用Handler对象和SharedPreferences来实现这两个功能。" 在Android开发中,线程间的通信是常见的需求,特别是在涉及到用户界面更新时。在给出的代码示例中,使用了Handler机制来实现在后台线程和主线程之间的通信。Handler是一个关键组件,它允许开发者在不同的线程之间发送和处理消息。 首先,定义了一个Handler对象,并重写了`handleMessage()`方法。在这个方法里,当收到一个消息(Message)时,会检查其`what`字段的值,如果等于UPDATE常量,那么就更新TextView的文本。这使得我们能够在非UI线程中执行计算或操作,然后通过Handler将结果传递给主线程,从而安全地更新UI。 在`onCreate()`方法中,创建了一个新的子线程。在这个线程的`run()`方法内,使用了一个循环来模拟一个耗时的操作。每次迭代,都会创建一个Message对象,设置其`what`字段为UPDATE,`obj`字段为当前的循环变量(i的值),然后通过Handler的`sendMessage()`方法将消息发送出去。这样,每当后台线程完成一部分工作,就会向主线程发送一个消息,主线程的Handler会接收到这个消息并更新TextView的内容。 此外,文档还提到了使用SharedPreferences来保存和读取应用的持久化数据。SharedPreferences是一个轻量级的存储方式,适合存储简单的键值对。在示例中,通过`getSharedPreferences()`获取一个SharedPreferences实例,然后使用`getInt()`方法读取一个名为"Set_time"的整型值。如果读取到的值不等于-1,就将其赋值给`pressleve`变量。接着,可以通过`edit()`方法获取一个可编辑的SharedPreferences对象,然后使用`putInt()`方法来保存新的值。最后,`commit()`或`apply()`方法用来提交这些更改。 总结来说,这个代码示例展示了如何利用Handler在Android的线程间传递消息,以及如何使用SharedPreferences进行数据持久化存储。这些是Android开发中基础但重要的技能,对于构建响应快速且能够正确处理后台任务的应用至关重要。