Java 更改ProgressBar的进度

Java 更改ProgressBar的进度,java,android,Java,Android,我正在创建一个应用程序,用户在其中输入一个特定的字节值,我正在使用一个工作管理器来模拟他们的上传进度。所以,基本上是这样的: int size = 50000; // Depends on what kind of file size the user wants to mimic for(int i = 0; i < size; i++) { //Increase progress UploadFile.setUploadProgress(i); } progressBar

我正在创建一个应用程序,用户在其中输入一个特定的字节值,我正在使用一个工作管理器来模拟他们的上传进度。所以,基本上是这样的:

int size = 50000; // Depends on what kind of file size the user wants to mimic
for(int i = 0; i < size; i++) {
   //Increase progress
   UploadFile.setUploadProgress(i);
}
progressBar
是我的进度条,定义为:

private static ProgressBar progressBar;
但这是静态的,所以内存泄漏是合乎逻辑的。我知道我们可以在AsyncTask中使用
ThreadLocal()
来避免这种情况,但是我们可以在活动中使用什么东西并使用静态函数来避免内存泄漏呢?还是有更好的方法


如果这是重复的,请告诉我正确的方向,因为我找不到任何东西。

WorkManager适用于后台工作。据我所知,您可以只输出WorkManager的最终结果,并在代码中使用它—请注意,您可以从CoroutineWorker扩展到处理coroutines,或从RxWorker扩展到处理RxJava2。如果我是你,我会将上传进度限定到正在运行的活动/片段,并仅在应用程序进入后台时将其专用于WorkManager。从WorkManager,我可以生成通知,通知用户进度

我知道这一点,但问题是,我想不断向工作经理显示上传进度,否则,如果在活动被破坏时将其排队,则该过程必须重新开始。一些我不想发生的事情。我曾热衷于使用工作经理来做奇怪的UI工作,但现在我意识到不应该是这样。谢谢你的提醒<代码>但这是静态的,因此内存泄漏是合乎逻辑的为什么内存泄漏?@TaQuangTu内存泄漏发生在ui对象脱离主线程时。在我的活动中,我的进度条是一个
公共静态
进度条。不,我不认为该方法引起的问题是静态的。另外,这不是内存泄漏,这只是由于循环次数高达50000次,您的UI线程被任务链阻塞。您是否尝试过RunnuiThread(新Runnable()我的函数实际上正在工作。IDE告诉我可能存在内存泄漏。不,我没有尝试过
RunnuiThread()
。如果您有任何想法,请发布。谢谢:)
private static ProgressBar progressBar;