2009-10-14 7 views
0

J'essaie de faire mon application pour jouer intro clip pour seulement quand je commence activities. Mais à partir de mon code, il est toujours jouer le clip après le réveil avant de reprendre l'application, même si je n'ai pas fermé l'application. Que puis-je faire pour résoudre ce problème?Android toujours jouer intro clip

De principale:

startActivity(new Intent(this, MyIntro.class)); 

De MyIntro:

public class MyIntro extends Activity implements OnCompletionListener { 

    int a; 

    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     setContentView(R.layout.intro); 
     playIntro(); 
    } 

    public void onConfigurationChanged(Configuration newConfig) { 
     setContentView(R.layout.intro); 
    } 

    public void onCompletion(MediaPlayer arg0) { 
     // TODO Auto-generated method stub 
     this.finish(); 
    } 

    private void playIntro(){ 
     setContentView(R.layout.intro); 

     VideoView video = (VideoView) this.findViewById(R.id.VideoView01); 

     Uri uri = Uri.parse("android.resource://real.app/" + R.raw.intro); 
     video.setVideoURI(uri); 
     video.requestFocus(); 
     video.setOnCompletionListener(this); 

     video.start(); 
    } 

} 

Répondre

0

Quelle fonction avez-vous dans votre principale substituée Activity - celui où vous appelez

startActivity(new Intent(this, MyIntro.class)) 

?

Je suppose que c'est onResume() et la ligne ci-dessus est exécutée trop de fois, à cause de cela. Lire à nouveau l'explication de Activity lifecycle here, c'est la première chose que je fais, quand j'ai des problèmes comme ça.

Rendez-vous avec un peu plus d'informations sur la principale Activity.

0

bidouille Evil:

Ajouter un pointeur statique à votre propre activité, remplir ou la remplacer quand « onCreate » est appelée. Si c'est nul, lisez votre film, sinon, ne le faites pas. Vous pourriez faire la même chose avec un booléen statique vraiment.

private static boolean isRunning = false; 

protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle) 
    if(!isRunning) 
    { 
     isRunning = true; 
     //Play your video here 
    } 
} 

Il y a des façons beaucoup plus élégantes et correctes de le faire, mais si vous êtes pressé cela fonctionnera probablement.