在应用程序启动时播放电影
问题描述:
我想在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);
}
}
请我怎么能解决这个问题。我在网上发现的所有内容都是关于显示一个对话框,但在我的情况下,它是一个视频。
感谢
答
@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();
}
答
这里是我的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格式的视频文件 谢谢
你需要des特洛伊的处理程序和运行之前,你的活动暂停或破坏 – Ak9637
好的,谢谢。但请,我该怎么做?我的意思是,销毁处理程序和可运行befor我的MainActivity暂停? – Djenh
创建对该处理程序的引用,然后使用:handler.removeCallbacksAndMessages(null);删除所有消息和回调看到这里:http://stackoverflow.com/questions/7407242/how-to-cancel-handler-postdelayed – sup4eli