我有一个函数,可以用http查询的条目填充我的SQLite数据库: 通用标签

我想做的是在过程开始之前在我的活动上设置textview的文本(在我发布的代码中的第一个“ try {..”前面)。 但文字不会改变,因为我的活动太忙而无法获取数据(我想。我没有其他解释。)

有什么建议吗?

谢谢, prexx

更新 ''从AsyncTask获取数据'' 通用标签

我的异步任务: 通用标签

有帮助吗?

解决方案

将代码的繁忙部分放入单独的线程中。

查看 AsyncTask 实用程序

AsyncTask.execute()之后立即调用textview.setText("foo"),您就可以了:)

致谢

使用代码示例进行更新: 通用标签

关键是将所有繁忙的代码放入doInBackGround方法中,该方法将在单独的线程中运行。所有的UI修改都必须在同一个UI线程中,并且可以在onPostExecute方法中完成,该方法将在同一个UI线程中执行

其他提示

您可以尝试在TextView上调用invalidate()。但是,对于繁重的数据加载方法,使用异步任务是最佳实践。这样不会中断用户在操作UI控件中的操作。

它与“太忙”无关,而是因为只有在方法返回时才设置文本。而随着您的联网,这将被延迟。

顺便说一句。在UI线程上的Honeycomb网络上,将引发异常并杀死您的应用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top