android.view.WindowLeaked 异常

2023-12-29

我正在从 url 读取 xml 数据。当它处于纵向模式时效果很好。但我想将其更改为横向模式。但它得到 android.view.WindowLeaked 异常。

请在这件事上给予我帮助。提前致谢。这是我的代码。

package com.eisuru.abc;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.pm.ActivityInfo;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    TextView tvResponse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        tvResponse = (TextView) findViewById(R.id.tvResponse); 
        new PostAsync().execute(); 
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }


    class PostAsync extends AsyncTask<Void, Void, Void> { 
        ProgressDialog pd; XMLHelper helper;     
        @Override 
        protected void onPreExecute() { 
            pd = ProgressDialog.show(MainActivity.this, "Exchange Rates", "Loading Exchange rates values ...", true, false);
            } 

        @Override 
        protected Void doInBackground(Void... arg0) { 
            helper = new XMLHelper(); helper.get(); 
            return null; 
            }   

        @Override 
        protected void onPostExecute(Void result) 
        { 
            StringBuilder builder = new StringBuilder(); 
            for(Exrate_values post : helper.exrates) {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t\t " + post.getFrom_currency()); 
                builder.append("\t \t\t " + post.getTo_Currency()); 
                builder.append("\t \t\t " + post.getExrt_buy()); 
                builder.append("\t \t\t\t " + post.getExrt_sell()); 


                builder.append("\n"); 

        } 
                tvResponse.setText(builder.toString()); 
                pd.dismiss(); 
                }   
        } 

}

当活动上的对话框设置为可见但方向更改时,活动本身会被破坏,然后会导致泄漏窗口错误。

有两种方法可以处理这种情况:-

Method 1
因此,您需要dismiss活动中的对话框onStop or onDestroy方法。例如:

@Override
protected void onStop() {
    super.onStop();

    if(pd!= null)
        pd.dismiss();
}

并在活动类中定义对话框

ProgressDialog pd;

这个链接会对你有帮助处理进度对话框和方向变化 http://blog.doityourselfandroid.com/2010/11/14/handling-progress-dialogs-and-screen-orientation-changes/

Method 2
您必须将其添加到清单中的活动声明中:

android:configChanges="orientation"

所以看起来像

<activity android:label="@string/app_name" 
        android:configChanges="orientation|keyboardHidden" 
        android:name="com.eisuru.abc.MainActivity">

问题是,当配置发生更改时,系统会破坏该活动。看配置变更 http://developer.android.com/reference/android/app/Activity.html#ConfigurationChanges.

因此,将其放入配置文件中可以避免系统破坏您的活动。相反,它调用onConfigurationChanged(Configuration)方法。

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

android.view.WindowLeaked 异常 的相关文章

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

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1

随机推荐

  • 在C中通过名称获取进程ID

    我试图通过进程名称获取进程 ID 例如 notepad exe 但之前 Stack Overflow 上的解决方案似乎无法正常工作 这是我尝试过的 DWORD FindProcessId const char processname HAN
  • Sencha touch 2 + Apple 推送通知 + Ext.device.Push

    我最近开始使用 Sencha Touch 2 进行开发 目前我正在创建一个需要 Apple 推送通知支持的应用程序 因此 我在 Apple 开发人员中心创建了必要的证书 并使用它们将应用程序与 Sencha Touch SDK 工具打包在一
  • XML 1.0 和 XML 2.0 之间的区别

    XML 1 0 和 XML 2 0 有什么区别 XML 2 0 从来没有出现过 即使是草案也是如此 有一个并不完全流行的 XML 1 1 标准 它有三个主要变化 其中最重要的变化是在 XML 1 0 第五版中就地应用于 XML 1 0 这一
  • 如何计算 3d numpy 数组中的凸包图像/体积

    我想知道是否有任何基于 numpy 的工具可以 给定 3D 二进制输入 numpy 图像 找到其凸包 并返回此 3D 凸包内的索引或类似体素 3D 像素 列表 一种可能性是使用skimage morphology convex hull i
  • 将 void*(*)(void*) 类型转换为 void(*)(void)

    作为作业的一部分 我试图创建一个像 pthreads 这样的用户级线程库 为了处理线程之间的上下文切换 我使用 swapcontext 函数 在使用它之前 我必须使用 makecontext 函数创建一个上下文 makecontext 需要
  • 使用 Python 将文件夹上传到 Google Cloud Storage?

    我找到了 upload from file 和 upload from filename 但是是否有函数或方法可以通过 Python 将整个文件夹上传到 Cloud Storage 这对我有用 将所有内容从本地目录复制到谷歌云存储中的特定存
  • 从 python 中的单独文件导入列表变量

    脚本 py list one two three python script here 我的列表变得非常长 大约 400 行 有没有办法让变量list在一个单独的 py 文件中并导入它 或者我应该有单独的文件并通过迭代创建一个列表 list
  • MySQL 使用另一个表中的列名

    我想知道是否可以返回一个结果集 其列名存储在单独的表中 这是可能的还是我需要一个带有变量的存储过程 请参阅 mysql dump 的链接和所需结果集的描述 http pastie org 584865 http pastie org 584
  • RabbitMQ:在直接交换中创建动态队列

    我是 RabbitMQ 的新手 我刚刚浏览了 Rabbitmq 文档 路由 我对 Exchange 与路由键之间的关系感到非常困惑 我的要求是 我想动态创建多个队列 请参考下图 前任 假设如果生产者为消费者 c3 创建消息 那么它应该转到
  • 使用 JAXB 从 XML 字符串创建对象

    如何使用下面的代码来解组 XML 字符串并将其映射到下面的 JAXB 对象 JAXBContext jaxbContext JAXBContext newInstance Person class Unmarshaller unmarsha
  • 如何记住自定义 React hook

    const useSomeHook number gt const newNumber setNewNumber useState 0 useEffect gt setNewNumber number 1 number const Some
  • .NET Core 6 - 如何在 Program.cs 中设置 ILogger(log4net) 进行依赖注入

    我已将我的新项目移至 NET核心6但显然 Program 和 Startup cs 文件发生了根本性的变化 我想在每个具有依赖注入的控制器中使用 log4net 但我找不到任何有关登录的教程 NET 核心 6 我尝试过的 builder S
  • 需要为USB外围设备编写驱动程序吗?

    我正在设计一个 USB 外设 它偶尔会连接到 Windows PC 并在每个方向上传输几 KB 的数据 将有一个自定义 PC 应用程序使用专有协议 即 USB 有效负载 来控制数据传输 我在下面的链接中看到微软描述的how为 USB 设备编
  • 使用 Jest/Enzyme 进行测试期间检测 React 中的合成点击

    我正在使用 React 构建一个应用程序 我隐藏了一个文件输入元素
  • 在 R 中为多个因子列创建频率表

    我是 R 新手 我正在为我的工作编写一份关于常用函数 特性语法的单独手册 我的示例数据框如下 x sample lt structure list Q9 A structure c 5L 3L 5L 3L 5L 3L 1L 5L 5L 5L
  • Seaborn diverging_palette 具有 2 种以上色调

    我试图使用 Seaborn 绘制相关矩阵 但我想用红色突出显示正极值和负极值 用绿色突出显示中间值 在我能找到的所有示例中 相关矩阵都是用 diverging palette 绘制的 但这仅允许您为光谱的末端选择两种颜色 并为中间选择浅色
  • 第一次运行 Grunt 构建时出错

    我使用 Yeoman 创建了一个 angularJS 项目 使用预览应用程序grunt serve效果很好 服务器启动 我可以成功浏览我的页面 执行时grunt build我正进入 状态 Running cdnify dist cdnify
  • 如何使用 'keyup' 事件将小写字符更改为大写?

    我的目标是使用 jQuery 事件 keyup http api jquery com keyup 将输入的小写字符转换为大写 我怎样才能实现这个目标 简单的 JavaScript var input document getElement
  • 何时使用 ADOX 代替 ADCX?

    文中提到的唯一区别是Intel指令集参考 https software intel com sites default files managed a4 60 325383 sdm vol 2abcd pdf是使用溢出标志而不是进位标志 什
  • android.view.WindowLeaked 异常

    我正在从 url 读取 xml 数据 当它处于纵向模式时效果很好 但我想将其更改为横向模式 但它得到 android view WindowLeaked 异常 请在这件事上给予我帮助 提前致谢 这是我的代码 package com eisu