【问题标题】:Android - Render Changes to View Before Running More CodeAndroid - 在运行更多代码之前将更改渲染到视图
【发布时间】:2014-02-18 16:29:30
【问题描述】:

我的应用程序首先从 Internet 下载大量文件。我想在下载时显示一行文字,上面写着“正在下载文件”。问题是,在所有代码运行之后,视图似乎才更新,因此 textview 不会显示。我尝试在文本视图代码和下载文件代码之间的 mLayoutView 对象上运行 invalidate 和 postInvalidate,但这似乎没有效果。我错过了什么?

【问题讨论】:

  • 您是在单独的线程上下载吗?
  • 同一个线程。这只是我的第一个合法的 android 应用程序,我不太清楚线程是如何工作的。

标签: android view android-activity


【解决方案1】:

您需要在单独的线程上进行下载。这是强制性的,原因如下:如果您的代码下载时间超过 5 秒,Android 将报告您的应用程序无响应并崩溃,并且您将无法更新用户界面

有很多例子说明如何做到这一点,你可以使用 AsyncTask,也可以使用 Thread 对象,或者 Runnable... 请参阅此链接以获取一个很好的示例:
Download a file with Android, and showing the progress in a ProgressDialog

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 2018-03-05
    相关资源
    最近更新 更多