在 super.onBackPressed() 上的 onSaveInstanceState 之后无法执行此操作

2023-12-23

当用户按返回键退出应用程序时,我将显示插页式广告:

mInterstitialAd.setAdListener(new AdListener() {
   @Override
   public void onAdClosed() {
        onBackPressed(); //line 98
   }
});

requestNewInterstitial();

private void requestNewInterstitial() {
   AdRequest adRequest = new AdRequest.Builder().build();
   mInterstitialAd.loadAd(adRequest);
}

@Override
public void onBackPressed() {
   if (mInterstitialAd.isLoaded()) {
      mInterstitialAd.show();
   } else {
      super.onBackPressed(); //line 410
   }
}

这是我从用户那里收到的崩溃报告:

java.lang.RuntimeException: Unable to pause activity {com.myapp/com.google.android.gms.ads.AdActivity}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3088)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3043)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3021)
at android.app.ActivityThread.access$1000(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1253)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5045)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1323)
at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:493)
at android.app.Activity.onBackPressed(Activity.java:2215)
at com.myapp.MainActivity.onBackPressed(MainActivity.java:410)
at com.myapp.MainActivity$1.onAdClosed(MainActivity.java:98)
at com.google.android.gms.ads.internal.client.zzc.onAdClosed(Unknown Source)
at com.google.android.gms.ads.internal.client.zzm$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:361)
at com.google.android.gms.ads.internal.client.l.a(SourceFile:109)
at com.google.android.gms.ads.internal.a.n(SourceFile:645)
at com.google.android.gms.ads.internal.b.t(SourceFile:351)
at com.google.android.gms.ads.internal.t.t(SourceFile:141)
at com.google.android.gms.ads.internal.overlay.ab.n(SourceFile:672)
at com.google.android.gms.ads.internal.overlay.ab.i(SourceFile:408)
at com.google.android.gms.ads.internal.overlay.a.d.onTransact(SourceFile:86)
at android.os.Binder.transact(Binder.java:361)
at com.google.android.gms.internal.zzdj$zza$zza.onPause(Unknown Source)
at com.google.android.gms.ads.AdActivity.onPause(Unknown Source)
at android.app.Activity.performPause(Activity.java:5335)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1233)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3074)

我知道它是在用户关闭广告时触发的,但为什么它会死掉super.onBackPressed()?


你不能打电话onBackPressed()当您的活动暂停时。然而,后按的行为是离开活动。只需致电finish()代替onBackPressed().

您应该确保在您的onBackPressed()覆盖活动即将完成。背部可能因其他原因而被压。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 super.onBackPressed() 上的 onSaveInstanceState 之后无法执行此操作 的相关文章

  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 如何在android中获取Camera2 API的当前曝光

    In android hardware Camera旧的 我使用下面的代码获取当前曝光并获取它Camera Camera Parameters param mCamera getParameters currentExposure para
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 将 Intent 包装在 LabeledIntent 中以用于显示目的

    要求 我的应用程序中有一个 共享 按钮 我需要通过 Facebook 分享 我需要选择是否安装原生 Facebook 应用程序 我们的决定是 如果未安装该应用程序 则将用户发送到 facebook com 进行分享 当前状态 我可以检测何时
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • C#中需要接口

    C 中需要什么接口 当我们在接口中编写抽象方法时 相反 我们可以直接在类中实现这些方法 接口不支持实现 因此您无法像抽象类那样提供任何默认实现 此外 接口不限于层次结构 因此它们比抽象类更灵活
  • 解释一下导致 HashMap.put() 执行无限循环的时机

    正如许多人已经注意到和遇到的那样HashMap put并发使用时可能会进入无限执行循环 请参阅灰熊 1207 https github com javaee grizzly issues 1207 JGRP 525 https issues
  • 减去日期即可得到天数

    我正在尝试编写一个 php 代码 它将能够减去两个日期并获取两个日期之间的天数 我想出的代码如下
  • Exo 播放器无法播放 url 中的视频

    我第一次尝试集成 ExoPlayer 确切地说 我尝试遵循一些教程 但视频甚至无法播放 所以我查阅了文档 但它仍然无法播放 当我检查日志时发现这个异常 E MediaCodec Codec reported err 0x80001001 a
  • clojurescript线程宏嵌套向量问题

    这是我的功能 defn foo gt gt conj countries list1 UK USA IND countries list2 AUS NZ countries list3 FRA some other operations 评
  • 下载网页和依赖项,包括 css 图像 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我经常需要下载网页然后离线编辑 我尝试了一些工具 它们缺乏的主要功能是下载 CSS 文件中引用的图像 是否有一个工具 适用于 Linux
  • MVC 6 WebFarm:防伪令牌无法解密

    我在 webfarm 场景中运行 MVC 6 vNext 具有多个 AppServer 的 ARR 前端 服务器关联性已关闭 当我在应用程序服务器之间从一个请求跳到另一个请求时 我收到错误 CryptographicException 在密
  • FB SDK 产生 PHP 致命错误

    首先注意到 2017 年 3 月 27 日 17 47 16 GMT 0 FB SDK 集成运行得很好 允许人们通过 Facebook 帐户登录我们的网站 但现在停止工作了 服务器日志显示以下错误 PHP Fatal error Canno
  • Python 记录自程序启动以来的时间

    我正在使用日志记录模块来创建记录器并输出数据 而不是使用 asctime s in logging Formatter 有没有一种好方法来记录相对于记录器创建的时间戳 Using relativeCreated d https docs p
  • 使用子进程多次运行程序后出现“WindowsError:[错误 206] 文件名或扩展名太长”

    我的 python 程序在 Windows HPC 2008 环境中准备输入 运行外部 FORTRAN 代码并处理输出 它工作得很好 除非代码执行外部程序 1042 1045 次 通常问题会更早收敛 在这些情况下 我会遇到例外 Window
  • 如何解决 flutter 中使用 firebase_auth 的内部错误

    我正在使用 flutter 的稳定版本和 firebase auth 最新版本 但它一次又一次地给我错误 flutter PlatformException ERROR INTERNAL ERROR An internal error ha
  • MySQL:使用 If else 更新查询

    我想更新表 但不知道要更新哪一列 这是一个简单的例子 Update tablename set if col1 A then col1 IA col2 XXX if col3 A then col3 IA col4 XXX where co
  • 如何在c#中获取IPv6地址?

    I use Request UserHostAddress 只能获取IPv4地址 如何获取访问者的IPv6地址 我假设你正在谈论HttpRequest UserHostAddress 它将始终返回用于连接到您的地址 如果请求是通过 IPv6
  • 在 swiper.js 上,添加停止、播放按钮

    在 swiper js 上 我尝试在自动滑块上添加播放 停止按钮 所以我尝试这样 function var homeSwiper new Swiper home top swiper pagination swiper pagination
  • CloudFormation yaml - 如何强制数字类型?

    我正在尝试创建 ECS 任务定义作为 CloudFormation 堆栈的一部分 到目前为止我的任务定义看起来像这样 TaskDefinition Type AWS ECS TaskDefinition Properties Require
  • 使用 HttpMethod 的自定义值

    我正在使用HttpClient我需要为HttpMethod 在哪里使用HttpWebRequest只期望一个字符串 HttpClient期望一个HttpMethod 枚举可用值HttpMethod 我没有看到添加自定义的方法 有什么想法吗
  • 设置多个位的 C 宏

    我正在用 C 语言开发一个微控制器 其中一部分涉及更改寄存器中的位值 我想出了一些宏来使事情变得更容易 define BIT SET addr shift addr 1 lt lt shift define BIT RESET addr s
  • Windows makefile 中的反斜杠

    重要编辑 我已经用我的特定 makefile 解决了这个问题 但我不知道如何解决 我用正斜杠替换了反斜杠 事实证明我的规则适用于这些规则 Gcc 接受混合的正斜杠和反斜杠 所以它工作得很好 存在一个症结mkdir 它不接受带有混合正斜杠和反
  • 如何在 Azure Devops/VSTS 中的任务之间传递变量

    对于任务 1 我有一个 CLI 任务 它只需获取子网名称和子网引用 如下所示 subnetname1 az network vnet subnet list resource group vnetrg01 vnet name vnet01
  • 在 super.onBackPressed() 上的 onSaveInstanceState 之后无法执行此操作

    当用户按返回键退出应用程序时 我将显示插页式广告 mInterstitialAd setAdListener new AdListener Override public void onAdClosed onBackPressed line