2016-11-17 11 views
0

私はAndroidアプリケーションの開始時に映画を再生したいと思います。だから私はこのコードを使用しますが、このエラーを生成します。アプリ起動時にムービーを再生する

はandroid.view.WindowLeaked:MainActivityは、どのように私はそれを修正することができますしてくださいウィンドウcom.android.internal.policy

public class MainActivity extends AppCompatActivity { 

private static int TIME_OUT = 8000; 
String SrcPath = "android.resource://com.appdev.loicomelectronique/debut"; 
VideoView video; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(1); 
    getWindow().setFlags(1024, 1024); 
    setContentView(R.layout.activity_main); 

    video = (VideoView)findViewById(R.id.videoView); 
    video.setVideoURI(Uri.parse(this.SrcPath)); 
    video.requestFocus(); 
    video.start(); 
    new Handler().postDelayed(new Runnable() 
    { 
     public void run() 
     { 
      Intent localIntent = new Intent(MainActivity.this, MainActivityLoi.class); 
      startActivity(localIntent); 
      //MainActivity.this.finish(); 
     } 
    }, TIME_OUT); 
} 

} 

が漏れました。私がウェブ上で見つけたのは、ダイアログを表示することですが、私の場合はビデオです。ここで

おかげ

+0

あなたはアクティビティが一時停止または破棄される前にハンドラと実行可能ファイルをトローします。 – Ak9637

+0

ありがとう、ありがとう。しかし、どうしたらいいですか?私は、MainActivityの一時停止のためにハンドラと実行可能ファイルを破壊することを意味します。 – Djenh

+0

そのハンドラへの参照を作成し、使用します。handler.removeCallbacksAndMessages(null);すべてのメッセージとコールバックを削除するにはこちらをご覧ください:http://stackoverflow.com/questions/7407242/how-to-cancel-handler-postdelayed – sup4eli

答えて

1

@Override 
 
protected void onCreate(Bundle savedInstanceState) { 
 
    super.onCreate(savedInstanceState); 
 
    requestWindowFeature(1); 
 
    getWindow().setFlags(1024, 1024); 
 
    setContentView(R.layout.activity_main); 
 

 
    video = (VideoView)findViewById(R.id.videoView); 
 
    video.setVideoURI(Uri.parse(this.SrcPath)); 
 
    video.requestFocus(); 
 
    video.start(); 
 
    mHandler=new Handler(); 
 
    mRunable=new Runable() 
 
    { 
 
     public void run() 
 
     { 
 
      Intent localIntent = new Intent(MainActivity.this, MainActivityLoi.class); 
 
      startActivity(localIntent); 
 
      //MainActivity.this.finish(); 
 
     } 
 
    }; 
 
    mhandler.postDelayed(mRunnable,TIME_OUT); 
 
    
 
} 
 
@Override 
 
protected void onStop() { 
 
    if(mHandler!=null){ 
 
     if(mHandler!=null){ 
 
       mHandler.removeCallbacks(mRunnable); 
 
     } 
 
     mHandler==null; 
 
       
 
    } 
 
     
 
    super.onStop(); 
 
     
 
     
 
}

+0

ありがとうございます。それはうまく動作します。 – Djenh

+0

今、すべての画面サイズで表示したいです。ムービーがスマートフォンの一部に表示されていますが、どのようにフルスクリーンでムービーを表示できますか? – Djenh

+0

あなたのビデオレイアウトを単に=と一致させて、parentとheight = match_parentを設定してください。 – Ak9637

0

は、私は、ビデオのディメンション、ちょうどレイアウトと私の.MP4ビデオを指定していない私のlayout.xmlファイル

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.appdev.loicomelectronique.activities.MainActivity"> 

<VideoView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/videoView"/> 

</FrameLayout> 

ですファイル ありがとう

関連する問題