YouTubePlayerSupportFragment启动重复活动

时间:2013-03-30 02:32:06

标签: android youtube youtube-api android-fragmentactivity

我正在使用YouTubePlayerSupportFragment在我的应用中嵌入YouTube视频。嵌入式设备运行良好,视频播放,一切都很棒。

当我点击我的嵌入式YouTube视频片段的全屏按钮时,会发生第一件奇怪的事情:它实例化现有封闭活动的新副本......我不明白为什么。

我有一个Activity,RootActivity,它在ViewPager中显示多个片段。我正在处理的片段叫做EasyModePurchaseFragment。该EMPF在其布局xml中嵌入了YouTubePlayerSupportFragment:

<fragment
    android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
    android:id="@+id/youtube_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
/>

当我点击YouTubePlayerSupportFragment上的全屏按钮时,会实例化一个全新的RootActivity。这是为什么?

它给我带来了一些问题,因为它没有以正确的方式完全创建,这意味着它会导致崩溃......这并不好。

编辑:

我也尝试拦截onFullScreen()事件,而不是调整视图大小,我只是尝试使用提供的意图启动一个独立的YouTube播放器:

Intent intent = YouTubeStandalonePlayer.createVideoIntent(getActivity(), myDeveloperKey, videoId);
getActivity().startActivity(intent);

奇怪的是,这也会破坏并重新创建我的RootActivity。如果我发布打开网址的意图,我的活动不会被破坏和重新创建,为什么在我启动YouTubeStandalonePlayer意图时它会被破坏并重新创建?

2 个答案:

答案 0 :(得分:2)

添加到包含YouTubePlayerSupportFragment此属性的活动

android:configChanges="screenSize|orientation|keyboardHidden"

答案 1 :(得分:0)

也许这会有所帮助,我很努力地找到解决你的具体问题而没有任何运气。如果您没有发布更多代码来查看您的应用中是否设置了YouTube播放器,那就太难了。

https://github.com/youtube/yt-android-player/blob/master/src/com/examples/youtubeapidemo/FullscreenDemoActivity.java