2009-10-14 82 views
0

我試圖讓我的應用僅在我開始activities時播放介紹片段。 但是,從我的代碼中,它總是在喚醒之前播放剪輯,然後再恢復到應用程序,儘管我沒有關閉該應用程序。我能做些什麼來解決這個問題?Android始終播放介紹片段

從主:

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

從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(); 
    } 

} 

回答

0

你在重寫什麼功能時,您主要Activity - 一個在您調用

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

我會認爲它是onResume()並且上面的行執行了太多次,因此。再次閱讀Activity生命週期here的解釋,這是我做的第一件事,當我遇到這樣的問題時。

回到我們有一點關於Activity的主要信息。

0

邪惡的黑客:

靜態指針添加到您自己的活動,填補或替代它,當「的onCreate」被調用。如果它是空的,播放你的電影,否則,不要。 你可以用靜態布爾值來做同樣的事情。

private static boolean isRunning = false; 

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

有很多更優雅和正確的方法來做到這一點,但如果你匆忙這可能會奏效。