2017-04-22 9 views
-1

こんにちは私はアンドロイドのために私はプログレスバーを使用しています私は録音を開始するときにプログレスバーを使用しています私はプログレスバーを更新しており、私は録音プログレスバーを停止したときにここで連続私はあなたが代わりにスレッドを停止することができます私たちはアンドロイドでハンドラを停止するときプログレスバーを

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

OKアクティビティ – Krish

+0

は何でも、私はハンドラを初期化しますが、結果として私が試してみましょうしないと言いますthread.interrupt() – Krish

+0

私は – Krish

答えて

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()を。

+0

にUnsupportedOperationExceptionを持つソリューションを提供してください、私が使用しても – Krish

+0

は使用を取得していないアムを更新するプログレスバーの起動時 – Krish

+0

私の答えのリンクは、スレッドを止める3つの方法を示していますが、何もあなたのために働きませんか? –

0

メソッドからrecorderProgressBarを定義し、nullでない場合は停止します。