当我旋转手机时,我的活动记录会重新启动。我有一个视频视图播放视频,我旋转,视频重新启动。现在我发现将其添加到清单中的活动已修复
<activity android:name="Vforum" android:configChanges="orientation"></activity>
现在的问题是视频控件在消失并返回之前不会重新绘制,因此要么留下从横向到纵向模式的非常长的控件,要么从纵向模式到横向的非常短的控件。一旦它们消失,然后我点击使它们回来,然后它们的大小正确。有没有更好的方法可以做到这一点?
add
android:configChanges="orientation"
到您在 AndroidManifest 中的活动.xml。
- 解决了我的问题无法再次下载渐进式视频。.
如果目标 API 级别为 13 或更高,则除了此处所述的orientation
值外,还必须包含screenSize
值。因此,您的标签可能看起来像
android:configChanges="orientation|screenSize"
考虑记住活动生命周期事件中的视频文件位置。创建活动后,您可以获取视频位置并从重新启动的那一刻开始播放。
在您的活动课程中:
@Override
protected void onCreate(Bundle bundle){
super.onCreate(bundle);
int mPos=bundle.getInt("pos"); // get position, also check if value exists, refer to documentation for more info
}
@Override
protected void onSaveInstanceState (Bundle outState){
outState.putInt("pos", myVideoView.getCurrentPosition()); // save it here
}
将 configChanges
属性添加到清单意味着您将自己处理配置更改。覆盖活动中的onConfigurationChanged()
方法:
int lastOrientation = 0;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks if orientation changed
if (lastOrientation != newConfig.orientation) {
lastOrientation = newConfig.orientation;
// redraw your controls here
}
}
ConfigChanges 是对的,但它确实像这样工作;
<activity
android:configChanges="orientation|screenSize" ... >
以及在活动类中
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (lastOrientation != newConfig.orientation) {
lastOrientation = newConfig.orientation;
// redraw your controls here
}
}
你应该试试这个。转到您的 AndroidManifest.xml 文件,然后跳过它标签。
<activity android:name=".activity_name"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>