2016-11-17 89 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

你需要des特洛伊的處理程序和運行之前,你的活動暫停或破壞 – Ak9637

+0

好的,謝謝。但請,我該怎麼做?我的意思是,銷燬處理程序和可運行befor我的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

只需設置您的視頻佈局= =匹配父母和身高= match_parent – Ak9637

0

這裏是我的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> 

我不指定視頻的尺寸,只是佈局和我的.mp4格式的視頻文件 謝謝

相關問題