2016-11-17 87 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格式的视频文件 谢谢

相关问题