小编J.Z*_*ang的帖子

使用 FragmentStatePagerAdapter 的 TransactionTooLargeException

我使用 ViewPager(offscreenPageLimit默认为 1)和 FragmentStatePagerAdapter 编写了一个阅读器应用程序,其中我有

override fun getItem(position: Int) = ComicFragment.newInstance(index = position + 1)
Run Code Online (Sandbox Code Playgroud)

这里创建了一个index可能大于2000的ComicFragment,具有这样索引的漫画将被加载到片段中。默认setRetainInstance为 false

同样在片段中,我将索引和布尔值保存transMode在savedInstanceState中,这样当用户来回滑动几页时,他们将使页面处于与原来相同的状态。它还将维护配置更改的状态。

问题是,随着每个片段从TooLargeTool中滑走,就会出现

D/TooLargeTool: ComicFragment.onSaveInstanceState wrote: Bundle126358192 contains 4 keys and measures 0.8 KB when serialized as a Parcel
    * androidx.lifecycle.BundlableSavedStateRegistry.key = 0.1 KB
    * transMode = 0.0 KB
    * android:user_visible_hint = 0.1 KB
    * android:view_state = 0.6 KB
    * fragment arguments = Bundle247579945 contains 1 keys and measures 0.0 KB when serialized as …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager fragmentstatepageradapter transactiontoolargeexception

5
推荐指数
0
解决办法
943
查看次数

通过adb授予PACKAGE_USAGE_STATS权限

adb shell pm grant x.y.z android.permission.PACKAGE_USAGE_STATS

这是通过 adb 授予权限的命令PACKAGE_USAGE_STATS,但只有当我从未在本机设置中切换此权限时它才有效。

同样的事情也发生在SYSTEM_ALERT_WINDOW许可上,尽管有一个更好的命令adb shell appops set x.y.z SYSTEM_ALERT_WINDOW allow可以有效地做到这一点。

问题是我没有找到另一个命令来切换PACKAGE_USAGE_STATS权限。

android adb

4
推荐指数
1
解决办法
2572
查看次数