回答編集履歴

1

コメントに対する返答

2020/12/03 00:16

投稿

katsuko
katsuko

スコア3536

test CHANGED
@@ -3,3 +3,33 @@
3
3
 
4
4
 
5
5
  * [AndroidのWebView復帰処理について](https://qiita.com/sokume2106/items/ee9050230f84026b121d)
6
+
7
+
8
+
9
+ ---
10
+
11
+ コメントを受けて。
12
+
13
+
14
+
15
+ > [https://stackoverflow.com/questions/60875538/save-state-of-fragment-a-when-navigating-from-bottomnavigationview-to-fragment-b](https://stackoverflow.com/questions/60875538/save-state-of-fragment-a-when-navigating-from-bottomnavigationview-to-fragment-b)
16
+
17
+ > こちらの理由でダメなようです。
18
+
19
+
20
+
21
+ `BottomNavigationView`もNavigationComponentも使った事がないのであまりあーだこーだ言えないですが、Activityがどうこうよりも、NavigationComponentがまともなfragmentのライフサイクルの管理をしていないように見えますね…。
22
+
23
+ 少なくとも、`ViewPager2`で使用する`FragmentStateAdapter`や、前身の`ViewPager`で使用する`FragmentStatePagerAdapter`はその辺りはしっかりやっていますけど。(ちゃんと`onDestroyView`が呼ばれる前に`onSaveInstanceState`が呼ばれている)
24
+
25
+
26
+
27
+ ただ、問題はfragmentの問題であり、`WebView#saveState`がダメだという話ではないので、自分でライフサイクルを管理されてはいかがですか。
28
+
29
+ (`onSaveInstanceState`が呼ばれないだけであれば、`onDestroyView`で`WebView#saveState`を呼んで状態を保存できるのではないですか。)
30
+
31
+
32
+
33
+ もっとも、心配はむしろ`WebView#saveState`が**どこまで保存されるか**ですけどね。
34
+
35
+ それなりに大きなサイトを開いているのであれば、`WebViwe#restoreState`でもそれなりに時間はかかると思います。(まぁやらないよりはマシでしょうけど)