【问题标题】:Query Regarding Android AsyncTask关于Android AsyncTask的查询
【发布时间】:2012-05-13 05:57:16
【问题描述】:

我希望在 Android 2.3.3 上实现一个 CRUD 应用程序,作为使用 SQLite 数据库的学习 PoC。现在,我已经放入了一个包含搜索表单的搜索活动和一个搜索结果活动(正在建设中)。我正在使用 AsyncTask 来处理数据库访问,并希望在下一个活动中显示此数据。

目前,我正在从onPostExecute 方法启动结果活动,结果似乎显示良好,但这不是在第二个线程(为 AsyncTask 创建)中启动新活动吗?

如果是这样,我如何将数据返回到 UI 线程,并从那里启动结果活动?

请随时要求澄清,我不经常发帖,所以我的帖子有时会有点半生不熟。

Debojit

【问题讨论】:

    标签: android android-asynctask


    【解决方案1】:

    只有doInBackground 在后台线程中。 onPostExecute 在 UI 线程中。这就是 AsyncTask 的美妙之处:在 UI 线程中设置它,它在后台线程中执行文件和网络访问等高延迟工作,然后在 UI 线程中使用 onPostExecute 进行响应。

    【讨论】:

    • 谢谢,这对我很有帮助。进一步查询:我应该为此使用Service 和/或ContentProvider 吗?
    • 您的用例证明了 ContentProvider 而不是 Service。
    • 在我的用例中,是否建议(性能方面)使用ContentProvider,还是将其保留为从doInBackground 调用的DAO(我当前的实现)?抱歉,如果这听起来有点迟钝。
    • 如果您的版本可以运行,并且速度足够快,并且您不打算扩展数据库访问权限,那么就不要管它了。否则,CP 是正确的方法。
    猜你喜欢
    • 2018-07-12
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2012-11-19
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多