作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的应用程序的第一个 Activity 的 onCreate 方法。它初始化所有的小部件,然后启动一个线程从互联网加载模型数据。在某些情况下,当网络真的很慢或没有响应时,"initializeModelThread"
似乎占用了整个 CPU,并且不允许 onCreate 方法完成。
在一个案例中,我看到 Log.v("Time...)
在 300 毫秒后被调用,但屏幕保持黑色大约 20 秒,直到 HttpException 停止 initalizeModelThread
。您已经可以看到我将线程的优先级设置为低。
在这种情况下使用 AsyncTask 会有帮助吗?您对这个问题还有其他想法吗?
public void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
Long time = System.currentTimeMillis();
initializeWidgets();
Thread threadInstance = new Thread(initializeModelThread);
threadInstance.setPriority(Thread.MIN_PRIORITY);
threadInstance.start();
Log.v("Time", "Difference from start " + Long.toString(System.currentTimeMillis() - time));
}
最佳答案
AsyncTask
在这里没有什么不同。
不是在 onCreate()
方法上创建线程,而是在 onStart()
方法上创建线程。
关于android - Android 方法 onCreate() 中的线程在 10% 的情况下仍会停止 UiThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924802/
我是一名优秀的程序员,十分优秀!