2014-05-20 5 views
0

J'ai le code suivant dans lequel la boîte de dialogue Progression n'apparaît pas.Boîte de dialogue de progression dans la méthode OnCompletion

@Override 
    public void onCompletion(MediaPlayer arg0) { 

    TrackAnalysis a = null; 

    File file = new File(songs.get(index).path); 
    final Track track; 
    try { 
     track = echoNest.uploadTrack(file, true); 
     final ProgressDialog dialog2 = ProgressDialog.show(MainGameActivity.this, "Analyzing...", "Please wait...", 
       true); 
     dialog2.setCancelable(true); 
      new Thread(new Runnable(){ 
       public void run(){ 
        try{ 
         Thread.sleep(3000); 

        } 
        catch (Exception e){ 
         e.printStackTrace(); 
        } 
        dialog2.dismiss(); 
       } 
      }).start(); 

     track.waitForAnalysis(30000); 
     a = track.getAnalysis(); 
     Log.i("TUTAJ", a.getTempo().toString() + track.getArtistName() + track.getTitle()); 
    } catch (EchoNestException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

La méthode OnCompletion provient de MediaPlayer.OnCompletionListener surchargé.

Ma question est pourquoi la barre de progression ne s'affiche pas? Lorsque j'ai placé le code ProgressBar à la méthode onClicked, cela fonctionne correctement.

+0

Avez-vous débogué pour vous assurer que vous obtenez même sur onCompletion? – ashishduh

Répondre

0

Vérifiez que vous appelez démarrer sur le lecteur multimédia avant de l'activer. sur la méthode cliquée ne nécessite pas de lecteur multimédia pour démarrer avant son ensemble.

0

Vous devez exécuter le code lié à l'interface utilisateur sur le thread principal. Vous pouvez utiliser runOnUiThread ou utiliser Handler. De nombreux exemples sont disponibles dans la section Guides API du site Android Developers. S'il vous plaît jeter un oeil à Processes and Threads pour un début.

Questions connexes