如何实现onRetainNonConfigurationInstance

时间:2013-06-11 13:51:08

标签: android screen-orientation

我在android中制作了一个媒体播放器 它工作得很好但是当我改变屏幕方向时,活动正在重新启动 我知道这个问题已经多次在stackoverflow上被问到了 但没有一个答案对我有帮助。 我想我应该使用:onRetainNonConfigurationInstance

    @Override 
public Object onRetainNonConfigurationInstance() { ... }

但我不知道实现它的正确方法 所以,如果有人能给我一个教程或一个隐含的例子,我将不胜感激

3 个答案:

答案 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);
}

我希望这有助于某人。