gpt4 book ai didi

android - Android 方法 onCreate() 中的线程在 10% 的情况下仍会停止 UiThread

转载 作者:行者123 更新时间:2023-11-29 14:10:00 26 4
gpt4 key购买 nike

这是我的应用程序的第一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com