1

在阅读了 Brad Fitzpatrick 关于 StrictMode 的文章后,我有几个问题。

文件 I/O 在我的应用程序中属于什么位置?(我知道 UI 线程是错误的,但产生一个新线程会更糟吗?)

如果我应该使用线程进行磁盘访问,那么我的应用程序应该如何处理实现?向 AsyncTask 发送参数?共享变量?我想优化内存使用,不仅是响应能力(特别是因为我的手机没有任何明显的差异)

@Brad 如果您阅读此内容:我喜欢在框架中完成此操作的带有示例(或指向 aosp 源中的位置的链接)的博客文章。

谢谢大家!

4

1 回答 1

4

不要担心线程。启动新线程比磁盘快。在 Nexus One,IIRC 上,创建新线程并在循环中启动它们大约需要 1 毫秒。

使用最适合您的应用程序的任何东西:AsyncTask、IntentService 或具有共享状态的新线程(带有适当的锁!)。如果用户切换,AsyncTask 可以保证继续运行,但更容易使用,并在完成后将您弹回 UI 线程。IntentService 将继续运行并完成,但不会帮助您返回 UI 线程并返回结果。您需要将结果(如果有)发送到 UI 线程上的处理程序。

于 2010-12-13T19:27:12.390 回答