小编Bin*_*ary的帖子

将 BottomNavigationView 与导航组件一起使用时,如何防止重新创建片段?

我有一个应用程序,一个活动,带有 BottomNavigationView 和 Fragment:

\n
<?xml version="1.0" encoding="utf-8"?>\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"\n    xmlns:app="http://schemas.android.com/apk/res-auto"\n    android:layout_width="match_parent"\n    android:layout_height="match_parent">\n\n    <com.google.android.material.bottomnavigation.BottomNavigationView\n        android:id="@+id/nav_view"\n        android:layout_width="match_parent"\n        android:layout_height="wrap_content"\n        app:layout_constraintBottom_toBottomOf="parent"\n        app:layout_constraintEnd_toEndOf="parent"\n        app:layout_constraintStart_toStartOf="parent"\n        app:menu="@menu/bottom_nav_menu" />\n\n    <fragment\n        android:id="@+id/nav_host_fragment_activity_main"\n        android:name="androidx.navigation.fragment.NavHostFragment"\n        android:layout_width="match_parent"\n        android:layout_height="0dp"\n        app:defaultNavHost="true"\n        app:layout_constraintBottom_toTopOf="@id/nav_view"\n        app:layout_constraintLeft_toLeftOf="parent"\n        app:layout_constraintRight_toRightOf="parent"\n        app:layout_constraintTop_toTopOf="parent"\n        app:navGraph="@navigation/mobile_navigation" />\n\n</androidx.constraintlayout.widget.ConstraintLayout>\n
Run Code Online (Sandbox Code Playgroud)\n

四个片段,我在 MainActivity 中像这样导航:

\n
        val navController = findNavController(R.id.nav_host_fragment_activity_main)\n        binding.navView.setupWithNavController(navController)\n\n        binding.navView.setOnNavigationItemSelectedListener { item ->\n            when (item.itemId) {\n                R.id.navigation_fra1 -> {\n                    findNavController(R.id.nav_host_fragment_activity_main).navigate(R.id.Fragment)\n                }\n                R.id.navigation_fra2 -> {\n                    findNavController(R.id.nav_host_fragment_activity_main).navigate(R.id.Fragment2)\n                }\n                R.id.navigation_fra3 -> {\n                    findNavController(R.id.nav_host_fragment_activity_main).navigate(R.id.Fragment3)\n                }\n                R.id.navigation_fra4 -> {\n                    findNavController(R.id.nav_host_fragment_activity_main).navigate(R.id.Fragment4)\n                }\n            }\n            true\n        }\n
Run Code Online (Sandbox Code Playgroud)\n

片段都是相同的,但从 Firebase 数据库中提取不同的数据:

\n
class Fragment …
Run Code Online (Sandbox Code Playgroud)

android fragment android-fragments bottomnavigationview android-architecture-navigation

11
推荐指数
0
解决办法
2188
查看次数

不更新应用:修正您的应用违反政策的问题

应用运行了半年,我尝试上传更新,一切正常,但控制台收到“我们已确定您的应用包含促进广告欺诈的代码”,尽管我几乎没有更改任何内容。唯一与广告至少有某种关系的变化,在启动后出现一个广告,关闭后显示应用程序的主屏幕,因此决定延长启动屏幕的显示时间,因此添加了轻微的延迟,以便广告有更多的时间加载。之后,更新失败。我们写信支持,将近 2 周后,他们回复:

“我已审核您的申诉请求,发现您的应用仍然违反了 Google Play 政策。我在下方提供了有关您的应用的具体问题以及您可以采取哪些措施让您的应用重新上架 Google Play 的详细信息。

第 1 步:修正您的应用违反政策的问题

在审核过程中,我们发现您的应用违反了广告欺诈政策:

您的应用不符合广告欺诈政策。严禁广告欺诈。为诱使广告网络相信流量来自真实的用户兴趣而生成的广告交互是广告欺诈,这是一种无效流量。

广告的展示方式不应导致无意点击。禁止为了广告目的强迫用户点击广告或提交个人信息,然后才能完全使用应用程序。广告不应在用户退出应用后或在用户按下后退按钮退出应用后出现。与您的应用相关联的广告不得干扰其他应用、广告或设备的操作,包括系统或设备按钮和端口。

这包括叠加层、随播功能和小部件化广告单元。广告只能在为其提供服务的应用内展示。您可以参考随附的屏幕截图以获取更多信息。

您可以通读广告欺诈政策页面,了解更多详细信息和常见违规行为示例。

请更新您的应用以解决此问题。您可能还需要仔细检查您的应用是否符合所有其他开发者计划政策,因为如果进一步违反政策,可能会发生额外的强制执行。

第 2 步:提交应用更新

要提交更新的 app bundle 或 APK:

准备您的更新。使用合规的 app bundle 或 APK 创建新版本。请务必在与不合规 app bundle 或 APK 相同的轨道上创建新版本,增加版本号,并将版本设置为 100% 发布。按照屏幕上的说明添加 APK 或 app bundle,然后查看并发布您的版本。如果您有任何其他问题,请告诉我。感谢您与我们合作解决政策问题以及您对 Google Play 的持续支持。”

应用程序似乎没有破坏任何东西,但我遇到了这个答案终结器抛出的未捕获异常:必须在同一线程上调用所有 WebView 方法。(Expected Looper ) th / 57308639 # 57308639 如果应用程序被最小化并且广告被加载并且不在应用程序中显示,则是可能的。或者,由于连接问题,它不会在启动后立即显示广告,而是将其传递到主屏幕,然后它已经显示它似乎也是错误的,但是更新问题出现在更早的地方。这可能是个问题吗?还有什么问题?也许有人做过类似的事情,请告诉我有什么解决方案?

android ads google-ads-api

6
推荐指数
1
解决办法
1824
查看次数