加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在Android中的屏幕旋转中保存片段中的数据

发布时间:2020-12-15 04:42:09 所属栏目:Java 来源:网络整理
导读:任何人都可以帮我解决我的问题吗? 我有一个活动和六个片段. 一个片段包含指向我的MediaPlayer类的链接,我用它来显示片段中的一些视频. 我在Activity的onCreate()方法中获取了每个Fragment类的链接. 每次屏幕旋转时,都会调用onCreate()方法,并获得指向我的六
任何人都可以帮我解决我的问题吗?

我有一个活动和六个片段.

一个片段包含指向我的MediaPlayer类的链接,我用它来显示片段中的一些视频.
我在Activity的onCreate()方法中获取了每个Fragment类的链接.
每次屏幕旋转时,都会调用onCreate()方法,并获得指向我的六个Fragment类(和新的MediaPlayer)的新链接.

我可以在轮换之前保存每个链接到我的Fragment类,然后将其恢复吗?
(例如:我通过链接到媒体播放器类保存链接到我的片段,然后调用我的MediaPlayer的stop()方法,然后当屏幕旋转时,我恢复所有数据,我的MediaPlayer并调用ResumePlay()方法) .

或者这是一个坏主意,我需要每次都重新创建链接,我唯一需要做的就是将当前时间的视频和路径保存在onSaveInstanceState文件中,然后将其恢复到onRestoreInstanceState中,随时启动新的MediaPlyer恢复了吗?

谢谢!

解决方法

对于每个类在应用程序商店中扩展片段,当您在onSaveInstanceState方法中更改屏幕方向然后保留在onCreateView方法内时,要保留它的值.

例如,对于您遇到的视频问题,您可以执行以下操作:

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("cp",videoview.getCurrentPosition());  
 }

然后像这样保留它

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
    if(savedInstanceState!=null)
    {
        int a=savedInstanceState.getInt("cp");
        videoview.seekTo(a);
    }

//the rest of your code then....
}

希望我能得到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读