gpt4 book ai didi

android - 7 个线程/runnable 是不是太多了?是什么让我的应用程序变慢了?

转载 作者:行者123 更新时间:2023-11-30 01:44:01 25 4
gpt4 key购买 nike

令人困惑的结果...我在一个工作正常的 Activity 中有 5 个进度条。

但过了一段时间后,UI 几乎停止了。

如何确保我的 5 个 progressBar 的处理程序在达到 progressBars MAX 后退出?

下面是我的 Activity 中进度条之一的示例。

public void doProgressBarA() {

maskBar4 = (progBar) child2.findViewById(R.id.fragmentB_progressBar4);
new Thread(new Runnable() {//Start long running op in background thread
public void run() {
final SharedPreferences nnn = getSharedPreferences("com.blagmyname.app", MODE_PRIVATE);
int spRateValue = nnn.getInt("current_name_number", 0);
while (m4progressStatus < spRateValue) {
m4progressStatus += 3;
// Update the progress bar and display the current value in the text view
mask4handler.post(new Runnable() {
public void run() {
maskBar4.setProgress(m4progressStatus);
}
});
try { // Sleep for 20 ms to display the progress slowly
Thread.sleep(8);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
////////////////////////////////////////////////////////////////////////////

最佳答案

Aysynctask 非常适合这种情况。但是,在 aysynctask 中,您将无法从那里更新 GUI。您将在方法 doInBackground 完成后更新 GUI。

我说 aysynctask 非常适合这种情况的原因是因为 onProgressUpdate() 方法。您可以通过它更新进度条。要使用 aysynctask,只需在您的对象上调用 .execute() 方法。然后,这将调用 AysyncTask 类。您需要制作此类,并至少将其中一种 AysyncTask 方法放入:

enter image description here

www.willcode4food.net

注 Intent 中的 onProgressUpdate 方法。从那里,你可以更新你的进度条,它甚至不需要经常更新:

enter image description here

xsun.info

我强烈建议查看 android 文档和在线以获取 aysynctask 示例。这并不困难,只需将您的线程内容复制并粘贴到另一个 asyncTask 类中即可。

看看这个:

http://developer.android.com/reference/android/os/AsyncTask.html

关于android - 7 个线程/runnable 是不是太多了?是什么让我的应用程序变慢了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989087/

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