android - 进度条不动

标签 android progress-bar

我有一个播放/录制样本的音频应用程序。我在用户界面上放了一个进度条,但是当播放样本时,进度条不会移动或似乎随着样本增加。我如何让它移动?

mProgress = (ProgressBar) findViewById(R.id.progressBar1);
            // final long trackDuration = (musicLength/44100)*1000; // track duration in millisec

             // Start lengthy operation in a background thread
             new Thread(new Runnable() {
                 public void run() {
                     //Log.i("music length = ", trackDuration+"");

                     while (mProgressStatus < musicLength) {
                         mProgressStatus = audioTrack.write(music, 0, musicLength);

                         // Update the progress bar
                         mHandler.post(new Runnable() {
                             public void run() {
                                 mProgress.setProgress(mProgressStatus);

                             }
                         });
                     }
                 }
             }).start();

最佳答案

推荐使用AsyncTask代替杂耍线程和处理程序。它包含所需的线程和处理程序方法。 onProgressUpdate 是在 UI 线程中调用的(在每次 publishProgress 调用之后),因此它可以成功更新您的进度条。

关于android - 进度条不动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127210/

相关文章:

android - Android 中的无边框进度条

java - 线程执行 run() 方法两次

java - 如何使用上标后缀格式化当前日期?

android - 检查 TextView 是否完全可见

android - 将 motionEvent 从一个 scrollView 传递到另一个

android - 强制应用程序如何始终运行在自己的任务中?

android - 添加谷歌地图功能后无法实例化 Activity ComponentInfo

android - 进度条更新进度

c++ - 一个简单的 cout 进度条的设计在 C++ 结束时立即从 0->100%

.net - 如何确定 .NET 中进度条的增量步骤?