I wonder if there is any advantage of fragments, on screen rotation.
Generally fragments get destroyed followed by activity. Is there something that fragments retain while doing so?
在活动和片段中都会调用onDestroy()方法。
答案 0 :(得分:0)
我可以尝试在屏幕旋转上找出Fragment
的优势。
实时应用问题是:
Android是
Activity
的潜在频繁销毁和重建。最常见的时间是用户在水平和纵向方向(屏幕旋转)之间旋转设备。此崩溃通常会发生,因为设备方向更改会导致 Android框架在任何包含的视图中拆除显示的Activity,然后完全重建{{1层次结构。对活动或活动中的视图的任何引用都会突然变为无效。同样,由于用户操作或类似操作而设置的活动或视图中的任何引用现在都将丢失。
有很多方法可以解决这个问题,但最简单的方法之一是利用碎片。
要记住的事情:
片段不会自动解决此问题,因为默认情况下,当活动被拆除以响应方向更改时,活动中包含的片段也会与任何包含的视图一起被拆除。
解决方案位于未充分利用的方法中: Activity/View
,其值为Fragment.setRetainInstance
。
<强>为什么吗
使用值
true
调用setRetainInstance
会导致Android在true
的拆解/重建循环中保留Fragment
。与Activity
一起,片段或视图中包含的Fragment
或其他对象引用仍然存在。
在片段实例上调用Views
。当方向发生更改时,Android ...
答案 1 :(得分:0)
你必须添加
sortByLenOrLex''' :: (Foldable f, Ord a) => [f a] -> [f a]
sortByLenOrLex''' as = unamend <$> sortBy cmp (amend <$> as) where
cmp (a,n,a') (b,m,b') | n > m = GT
| n < m = LT
| otherwise = compare a' b'
amend x = (x, length x, toList x)
unamend (x,_,_) = x
在父级Activity中也调用
*Main> sortByLenOrLex''' [Just 3, Just 4, Just 3, Nothing]
[Nothing,Just 3,Just 3,Just 4]
*Main> sortByLenOrLex''' [(4,1),(1,1),(1,2),(1,1),(3,1)]
[(4,1),(1,1),(1,1),(3,1),(1,2)]
*Main> sortByLenOrLex''' [Left "bla", Right "foo", Right "foo", Right "baz"]
[Left "bla",Right "baz",Right "foo",Right "foo"]
*Main> sortByLenOrLex''' [(3,"hello"),(2,"goodbye"),(1,"hello")]
[(2,"goodbye"),(3,"hello"),(1,"hello")]
在onCreate of fragment
中