美文网首页
从Fragment被销毁看replace和add的区别

从Fragment被销毁看replace和add的区别

作者: 唔笛plk | 来源:发表于2020-03-13 11:15 被阅读0次

从Fragment被销毁看replace和add的区别

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0324/2639.html

1.在add的时候,加上一个tab参数

transaction.add(R.id.content, IndexFragment,”Tab1″);

2.然后当IndexFragment引用被回收置空的话,先通过

IndexFragment=FragmentManager.findFragmentByTag(“Tab1″);

找到对应的引用,然后继续上面的hide,show;

最近写程序时用到了系统拍照获取照片,在三星的手机上使用时,发现调用相机拍完照片返回时,触发它的activity的生命周期调用了onDestroy()-->onCreate();重新走了onCreate()方法;导致系统崩溃。

方法一:刚开始调用了onSaveInstanceState(Bundle savedInstanceState)和onRestoreInstanceState(Bundle savedInstanceState)这个方法来实现,虽然方法比较笨,但是可以通过在onSaveInstanceState中保存一些你需要的变量,在onCreate()方法中判断savedInstanceState是否为null,不为null则调用onRestoreInstanceState()方法取出之前存的变量来使用,这相当于重新加载了一边当前activity。

方法二:上面的方法可行,但并不是解决问题的根本办法,后来通过查看发现在调用相机时,activity从竖屏切换到了横屏,在横竖屏切换导致了activity重新装载,找到根本原因后,在activity中通过Android:configChanges="orientation|keyboardHidden" 这个属性,可以约束调用相机时,保持当前activity竖屏状态不变,从而解决了activity重新加载的问题。

相关文章

网友评论

      本文标题:从Fragment被销毁看replace和add的区别

      本文链接:https://www.haomeiwen.com/subject/txwlfxtx.html