何时去线程。什么时候不去线程

时间:2011-06-03 10:07:44

标签: java android multithreading asynchronous android-asynctask

我是Threading的新手,但不是异步行为。当我使用GoogleAnalytics trackViewPage方法和MobFoxView构造函数时,我的Android应用程序需要大约180毫秒才能启动,大约需要550毫秒。来自Actionscript 3,任何“花时间”的东西都是自动异步的,我被迫用听众处理它,这在Android中看起来有点不同。似乎负责决定何时应该异步。所以我想我的问题是, HOW 我决定什么应该是异步?是执行的毫秒数?但也许这些设备之间的变化很大。也许它应该是......或者是......?

1 个答案:

答案 0 :(得分:4)

你需要知道一件重要的事情 - 默认情况下你所做的一切都没有启动单独的线程在“主”线程上执行(也称为UI线程)。

如果你做了一些可以阻止的事情 - 你的用户界面会滞后,用户也会受到影响。

如果你做的事情不是关于UI,而是关于数据库查询,网络调用或潜在的长阻塞操作 - 你需要直接启动线程或使用AsyncTask。

另外,您必须注意,如果您尝试从非主线程对UI执行某些操作(例如,将值设置为TextView),则会失败。 UI只能从UI-Thread中获取。