嗨,我是Android的新手,在我的应用程序中,我正在使用Progress-bar进行音频录制。
当我开始录制时,我正在更新进度条,这很好。
当我停止录制进度条时,不要停止它的连续更新。
请在停止录制时帮助我了解如何停止进度条。
private void startRecording() {
try {
handler = new Handler();
recorderProgressBar = (ProgressBar) dialog.findViewById(R.id.recorder_progressBar);
progressStatus = 0;
// Start the lengthy operation in a background thread
thread = new Thread() {
@Override
public void run() {
while (progressStatus < 100) {
// Update the progress bar
if (handler != null) {
// Update the progress status
progressStatus += 1;
// Try to sleep the thread for 20 milliseconds
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(runnable);
}
}
}
};
thread.start();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
Runnable runnable = new Runnable() {
public void run() {
System.out.println("it's calling ramakrishna");
recorderProgressBar.setProgress(progressStatus);
}
};
private void stopRecording() {
//Kill Background thread
if (handler != null) {
handler.removeCallbacks(runnable);
}
}
答案 0 :(得分:0)
您可以改为停止该线程。
private void stopRecording() {
//Kill Background thread
if (handler != null) {
handler.removeCallbacks(runnable);
}
if (thread != null) {
thread.stop();
}
}
或者您可以按照此处的建议使用thread.interrupt()
:Do not use Thread.stop()。
答案 1 :(得分:0)
从方法中定义recorderProgressBar,如果它不为空则停止。