teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントに対する返答

2020/12/03 00:16

投稿

katsuko
katsuko

スコア3601

answer CHANGED
@@ -1,3 +1,18 @@
1
1
  WebViewの状態は保存していますか?
2
2
 
3
- * [AndroidのWebView復帰処理について](https://qiita.com/sokume2106/items/ee9050230f84026b121d)
3
+ * [AndroidのWebView復帰処理について](https://qiita.com/sokume2106/items/ee9050230f84026b121d)
4
+
5
+ ---
6
+ コメントを受けて。
7
+
8
+ > [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)
9
+ > こちらの理由でダメなようです。
10
+
11
+ `BottomNavigationView`もNavigationComponentも使った事がないのであまりあーだこーだ言えないですが、Activityがどうこうよりも、NavigationComponentがまともなfragmentのライフサイクルの管理をしていないように見えますね…。
12
+ 少なくとも、`ViewPager2`で使用する`FragmentStateAdapter`や、前身の`ViewPager`で使用する`FragmentStatePagerAdapter`はその辺りはしっかりやっていますけど。(ちゃんと`onDestroyView`が呼ばれる前に`onSaveInstanceState`が呼ばれている)
13
+
14
+ ただ、問題はfragmentの問題であり、`WebView#saveState`がダメだという話ではないので、自分でライフサイクルを管理されてはいかがですか。
15
+ (`onSaveInstanceState`が呼ばれないだけであれば、`onDestroyView`で`WebView#saveState`を呼んで状態を保存できるのではないですか。)
16
+
17
+ もっとも、心配はむしろ`WebView#saveState`が**どこまで保存されるか**ですけどね。
18
+ それなりに大きなサイトを開いているのであれば、`WebViwe#restoreState`でもそれなりに時間はかかると思います。(まぁやらないよりはマシでしょうけど)