我在android中制作了一个媒体播放器 它工作得很好但是当我改变屏幕方向时,活动正在重新启动 我知道这个问题已经多次在stackoverflow上被问到了 但没有一个答案对我有帮助。 我想我应该使用:onRetainNonConfigurationInstance
@Override
public Object onRetainNonConfigurationInstance() { ... }
但我不知道实现它的正确方法 所以,如果有人能给我一个教程或一个隐含的例子,我将不胜感激
答案 0 :(得分:5)
我认为onRetainNonConfigurationInstance()
已被弃用。它会告诉您使用Fragments
代替。 Here是指向Fragment
文档的链接。基本上,您会将自己的用户界面和数据放入自定义Fragment
,然后使用FragmentManager
存储Fragment
的实例。然后,当活动重新开始时,您可以获取Fragment
并根据需要重新定位。
答案 1 :(得分:3)
别介意它被删除了,它运行正常。最简单的是:
public Object onRetainNonConfigurationInstance() {
return this;
}
然后在YourActivity
的{{1}}
onCreate()
答案 2 :(得分:0)
在我的媒体播放器中,为了不完全重新创建MediaPlayer,我执行了以下操作:
1)在AndroidManifest.xml中添加了
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize">
2)添加了MainActivity内部
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setSize(mVideoWidth, mVideoHeight);
}
我希望这有助于某人。