2017-04-22 1 views
-1

Hallo ich bin neu für Android und in meiner App verwende ich Progress-bar für Audio-Aufnahme für diese, wenn ich Aufnahme starten ich bin Fortschrittsbalken aktualisieren und das ist in Ordnung, hier, wenn ich die Aufnahme progressbar stoppen nicht stoppen sie aneinander angrenzend ist die Aktualisierung helfen mir bitte jemand, wie progressbar zu stoppen, wenn iWie stoppe ich Progress-bar, wenn wir Handler in android stoppen

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 lassen Sie mich versuchen und sagen Sie führen – Krish

+0

nicht selbst initialisieren i-Handler, wenn Aktivität progressbar – Krish

+0

Aktualisierung startet mich solutiuon – Krish

Antwort

0

dem stoppen der Aufnahme können Sie den Faden zu stoppen statt.

private void stopRecording() { 
    //Kill Background thread 
    if (handler != null) { 
     handler.removeCallbacks(runnable); 
    } 

    if (thread != null) { 
     thread.stop(); 
    } 
} 

Oder Sie können thread.interrupt() verwenden, wie hier vorgeschlagen: Do not use Thread.stop().

+0

UnsupportedOperationException i – Krish

+0

bin immer keine Verwendung auch verwende ich thread.interrupt() – Krish

+0

Der Link in meiner Antwort zeigt 3 Möglichkeiten, einen Thread zu stoppen, nichts funktioniert für Sie? –

0

Definieren Sie recorderProgressBar aus der Methode, und stoppen Sie das, wenn es nicht null ist.