Android活动太忙而无法设置TextView文本?
-
27-10-2019 - |
题
我有一个函数,可以用http查询的条目填充我的SQLite数据库: 通用标签
我想做的是在过程开始之前在我的活动上设置textview的文本(在我发布的代码中的第一个“ try {..”前面)。 但文字不会改变,因为我的活动太忙而无法获取数据(我想。我没有其他解释。)
有什么建议吗?
谢谢, prexx
更新 ''从AsyncTask获取数据'' 通用标签
我的异步任务: 通用标签
解决方案
将代码的繁忙部分放入单独的线程中。
查看 AsyncTask 实用程序
在AsyncTask.execute()
之后立即调用textview.setText("foo")
,您就可以了:)
致谢
使用代码示例进行更新: 通用标签
关键是将所有繁忙的代码放入doInBackGround
方法中,该方法将在单独的线程中运行。所有的UI修改都必须在同一个UI线程中,并且可以在onPostExecute
方法中完成,该方法将在同一个UI线程中执行
其他提示
您可以尝试在TextView上调用invalidate()。但是,对于繁重的数据加载方法,使用异步任务是最佳实践。这样不会中断用户在操作UI控件中的操作。
它与“太忙”无关,而是因为只有在方法返回时才设置文本。而随着您的联网,这将被延迟。
顺便说一句。在UI线程上的Honeycomb网络上,将引发异常并杀死您的应用。
不隶属于 StackOverflow