Activity 已泄漏窗口

2024-03-12

在我的启动屏幕中,我做了它,以便它检测 wifi 或 3g 是否启用。如果不是,则会出现一个对话框屏幕提示用户退出并打开其中一个。如果它打开,则代码将继续。我的 logcat 中不断收到有关我的活动有泄漏窗口的错误。我不知道如何解决这个问题。下面的代码和 logcat。有任何想法吗?

这是我的代码:

//create alert dialog for wifi and 3g
connectionDialog = new AlertDialog.Builder(SplashMain.this).create();
Log.d(TAG, "dialog created");
connectionDialog.setTitle("Wifi or 3G not detected. Please enable either Wifi or 3G");
connectionDialog.setButton("Exit", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
            finish();
    }
});

wifiHandler = new Handler();
setContentView(R.layout.splashscreen);  //Make the splash screen load first
Thread splashScreenTimer = new Thread(){ //create a timer for the splash screen
    public void run(){      //create a run class
        Looper.prepare();   //prepare looper
        try{            //methods within the run class
            int screenTimer =0;
            //make it last 3 seconds - create a while loop
            while(screenTimer <3000){
                sleep(100); //100= 1/10th of a second
                screenTimer = screenTimer +100;
            }
            connectionState();  //check wifi stuff
            Log.d(TAG, "checked wifi state");
            if(mobile == true || wifi == true){
                Log.d(TAG, "wifi is true");
                connectionDialog.dismiss();
                startActivity (new Intent("ravebox.dev.sdr.CLEARSCREEN"));
                finish();
                Log.d(TAG, "started activity");
            }
            if(mobile == false || wifi == false){
                Log.d(TAG, "wifi is false");
                wifiHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        Log.d(TAG, "show dialog");
                        connectionDialog.show();
                        Log.d(TAG, "show'd dialog");
                    }
                });
            }//add activity to the manifest
        } catch (InterruptedException e) {
            e.printStackTrace();
        }finally{
            //finish();
        }
    }
};
splashScreenTimer.start();

Log cat:

08-30 22:45:32.188: ERROR/WindowManager(334): Activity ravebox.dev.sdr.SplashMain has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405377e0 that was originally added here
08-30 22:45:32.188: ERROR/WindowManager(334): android.view.WindowLeaked: Activity ravebox.dev.sdr.SplashMain has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405377e0 that was originally added here
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.view.ViewRoot.<init>(ViewRoot.java:258)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.view.Window$LocalWindowManager.addView(Window.java:465)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.app.Dialog.show(Dialog.java:241)
08-30 22:45:32.188: ERROR/WindowManager(334):     at ravebox.dev.sdr.SplashMain$2$1.run(SplashMain.java:90)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.os.Handler.handleCallback(Handler.java:587)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.os.Looper.loop(Looper.java:123)
08-30 22:45:32.188: ERROR/WindowManager(334):     at android.app.ActivityThread.main(ActivityThread.java:3835)
08-30 22:45:32.188: ERROR/WindowManager(334):     at java.lang.reflect.Method.invokeNative(Native Method)
08-30 22:45:32.188: ERROR/WindowManager(334):     at java.lang.reflect.Method.invoke(Method.java:507)
08-30 22:45:32.188: ERROR/WindowManager(334):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
08-30 22:45:32.188: ERROR/WindowManager(334):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
08-30 22:45:32.188: ERROR/WindowManager(334):     at dalvik.system.NativeStart.main(Native Method)

这是一个说明为什么会出现此问题的答案:Activity 泄漏了最初添加的窗口 https://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added

现在,在您的情况下,您已经编写了这段代码

if(mobile == true || wifi == true){
      Log.d(TAG, "wifi is true");
      connectionDialog.dismiss();
      startActivity (new Intent("ravebox.dev.sdr.CLEARSCREEN"));
      finish();
      Log.d(TAG, "started activity");
}

在上面的代码中,您在哪里显示connectionDialog.dismiss();在驳回它之前。

在此代码中,您将通过以下方式显示对话框connectionDialog.show();但是关闭它的代码在哪里。

if(mobile == false || wifi == false){
      Log.d(TAG, "wifi is false");
      wifiHandler.post(new Runnable() {
      @Override
      public void run() {
         Log.d(TAG, "show dialog");
         connectionDialog.show();
         Log.d(TAG, "show'd dialog");
      }
});

所以,请找到一个解决方案,它应该是这样的。

仅在已连接 wifi 的情况下在启动时显示对话框cancel()并转到下一个活动(如果未连接)cancel()一段时间后,并给出一条消息,指出 wifi 未找到或连接。

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

Activity 已泄漏窗口 的相关文章

  • 将图像从 Android 上传到 GCS

    我正在尝试将图像从 Android 直接上传到 Google 云存储 但API似乎不起作用 他们有一些与 App 引擎相关的 Java 示例 我没有看到任何被证明可以在 Android 上运行的示例 在 Android 上 我尝试使用 js
  • OTP(令牌)应自动从消息中读取

    我正在开发一个 Android 应用程序 其中服务器发送 OTP 用户需要在应用程序中输入此 OTP 才能注册我的应用程序 我想要的是 我的应用程序应该能够自动读取服务器发送的 OTP 我怎样才能实现这个目标 在这方面的任何帮助或指导将不胜
  • 如何引导用户为我的应用程序启用辅助功能服务

    我知道不可能以编程方式启用应用程序的辅助功能服务 因此我想将用户引导至此屏幕 System settings gt Accessibility gt app name gt enable disable screen 那可能吗 您可以将它们
  • 虹膜和面部识别生物识别技术

    In blog Android P 中更好的生物识别技术 https android developers googleblog com 2018 06 better biometrics in android p html他们说 为了确保
  • 设置显式注释处理器

    我正在尝试将 Maven 存储库添加到我的 Android Studio 项目中 当我进行 Gradle 项目同步时 一切都很好 但是 每当我尝试构建我的 apk 时 都会收到此错误 Execution failed for task ap
  • Android 中如何调用 getContentResolver() ?

    我想知道当时的背景getContentResolver 叫做 我有一个这样的场景 我有一个调用方法的活动 AmyFunc B 类 这不是一项活动 所以 在B类中我必须使用getContentResolver 我直接打电话getContent
  • BroadcastReceiver未收到警报广播

    我有一个设置新的重复警报的代码 在生产中我将使用 inexactRepeating 但是我注册的用于处理它的 BroadCastReceiver 没有被调用 这是我设置闹钟的代码 newAlarmPeriod 5000 For debugg
  • audioTrack play() 只播放一次

    第一次使用Android的AudioTrack 我创建了一个 AndroidAudioDevice 类 我用这个构造函数初始化它 public AndroidAudioDevice constructor Log i Audio const
  • android 6.0运行时需要哪些权限

    我有一个 Android 代码 可以在 Android 5 0 版本上正常运行 我的AndroidManifest xml is
  • 如何在 Android 中嵌入和播放 YouTube 视频

    我们可以在 Android 应用程序中观看 YouTube 视频吗 我的意思是 如果我们有 YouTube 上的视频链接 我们可以在 VideoView 或其他小部件中播放它吗 有什么想法吗 答案很简单 是 请查看以下链接 如何在我的 An
  • 如何使用 Gmail 帐户对 Android 中的应用程序进行身份验证?

    在 android 中 我如何通过 Gmail 帐户对用户进行身份验证 他们有适用于 android 的 api 或支持吗 谢谢 是的 您可以在 Android 中使用 OAuth 有一篇帖子对此说的很详细 Android 中使用适用于 J
  • Android SDK 中缺少 Gradle(使用 cordova + ionic)

    是的 我搜索了这个 但没有搜索到任何内容 只是有关 ANDROID HOME 路径的信息 但就我而言 我认为这不是真正的问题 当我尝试做的时候ionic build android我收到这个错误 错误 在 android sdk 中找不到
  • 将 uiautomator 测试用例与 Android 中的应用程序代码集成

    我正在使用 Eclipse IDE 这是我的 uiautomator 测试用例代码 public class caltest extends UiAutomatorTestCase public void testDemo throws U
  • 使用 Bixolon R200 进行打印的 Android 应用程序

    我正在开发一个 Android 应用程序 用于使用 Bixolon R200 进行打印 我在工作中使用 bxlprint jar 的类 当我想打印波斯字符串时 打印机打印奇怪的字符 我使用UTF 8和UTF 16进行编码 你能帮我吗 Str
  • 如何在活动之间传递大型集合(主从流)

    背景 我正在实现一个从网络服务读取有关电影信息的应用程序 该网络服务返回有关每部电影的一些信息 标题 日期 海报网址 导演 演员等 该 Web 服务支持分页 因此电影以 100 部为一组加载 执行 这个想法是显示一个包含所有海报的网格 当用
  • Android - 向 Android 的内置应用程序添加菜单项

    我想在 联系人 菜单中添加按钮或菜单项 是否可以 我使用 Android 2 2 和 Eclipse 3 6 1 不可以 内置 Android 应用程序不支持菜单中的意图选项 即您无法向其中添加任何内容
  • 在Android Dialog中,如何为startActivityForResult设置onActivityResult?

    从活动中 我可以轻松设置onActivityResult 并打电话startActivityForResult 一切正常 现在 我需要打电话startActivityForResult 从对话框中 但我无法设置onActivityResul
  • 如何在 Android Studio 中为单独的模块生成签名的 APK?

    我的项目有 3 个模块 include app include videograbber include audiograbber 现在我想为Videograbber模块生成签名的APK 当我在 Android Studio 中使用 生成签
  • 如何使用Android平板模拟器?

    我想开始 Android 平板电脑应用程序开发 我已经使用 1024X600 模拟器创建了一个新的 avd 并启动了 但是当我单击任何应用程序时如何从模拟器返回 是否有任何特定的 api 可用于开发 android 平板电脑应用程序 或者我
  • Android Google Maps V2 当前位置纬度经度 NullPointerException

    有很多类似的问题 但我没有找到解决我的问题的方法 setUpMap方法是 private void setUpMap BitmapDescriptor iconm BitmapDescriptorFactory fromResource R

随机推荐

  • Google 结账通知确认失败

    我有一个被调用的回调 url 我可以处理它 但是 Google 不会处理我的确认 这一切都在EnvironmentType Sandbox 在 Google 结帐 集成控制台 中 我收到以下消息 我们在处理您的通知确认时遇到错误 我们得到的
  • 使用 ItemTouchHelper 时,如何在拖动时取消对 RecyclerView 中项目的拖动?

    背景 我试图拥有一个具有不同视图类型的 RecyclerView 但具有拖放功能以及单击和长按操作的能力 它与 电话 应用程序类似 您可以在其中更改收藏夹项目的顺序 在 电话 应用程序上 当您长按某个项目时 会立即出现上下文菜单 如果继续拖
  • 配置器中的组合数量

    我被要求编写一个例程来决定产品配置器中可能的组合数量 配置器非常简单 尽管它具有比这更多的功能 但它可以建模为多个 单选组 如 UI 控件 其中必须选择 n 个选项之一 唯一可以使用的约束是规则 如果选择了一个选项 则不能选择另一个选项 所
  • Pandas 两个分组的 DataFrame 列的简单关联

    有没有一种好方法来获取两个分组的 DataFrame 列的简单关联 看来无论熊猫怎样 corr 函数想要返回一个相关矩阵 例如 i pd MultiIndex from product A B C np arange 1 11 1 name
  • 如果 url 不包含某些字符串,则 htaccess 重定向

    我想将所有传入请求重定向到另一个网址 如果它不包含 和 admin 我需要它用于 angular js 但我有 admin 和 php 例如 http example com link to article http example com
  • JavaScript 检测/浏览器统计

    这个问题已经被问过几次了 但我认为仍然值得与你们核实以获得更多意见 我的所有网站都使用 Google Analytics 进行统计 由于它依赖于 JavaScript 我认为检查有多少人在其浏览器中启用 禁用了 JS 是很重要的 我记得我经
  • 如何从 Azure 数据工厂连接到 Firebird/InterBase (Syntess) 数据库?

    在 ADF 中 我创建了一个管道 源是 ODBC 表或查询 下一步是创建链接服务 集成运行时已创建并选择 如下所示 现在问题来了 我应该输入什么连接字符串 尝试与Server 192 168 1 35 Database dbname DSN
  • Tomcat - 如何指定可以在 server.xml 中扩展的属性

    目前 我的 server xml 中有
  • 用Java从视频中获取缩略图

    我想从 servlet 或任何其他服务器端 Java 方法中的视频创建缩略图 视频文件上传到服务器上 上传后应创建缩略图 我的问题不是创建缩略图 而是仅创建一个或一定数量的缩略图 到目前为止我的代码 public class Test pu
  • __format__ 方法应该如何用于 int?

    我看到有一个 format 方法但有帮助 int format 不提供任何帮助 我也知道你不应该打电话给 method 直接地 什么时候调用这个方法 它的论据是什么 它用于 Py3k 的新字符串格式化方案 您可以在这里找到更多信息 http
  • 我应该将所有项目存储在一个还是多个存储库中?

    我目前正在使用 TortoiseSVN 来管理我目前正在进行的几个项目 当我第一次将所有内容移至源代码管理中时 我不太确定应如何布置所有内容 因此我最终将每个项目放入其自己的存储库中 我想知道将它们全部移动到一个大存储库中并将它们分成项目文
  • 为什么我们要转换 malloc 的返回值? [复制]

    这个问题在这里已经有答案了 有人可以向我解释一下为什么有些程序员在 malloc 前面使用 char 吗 我知道它返回 void 但为什么我希望它只返回 char 内存 抱歉 我只是编程新手 谢谢 无需转换返回值malloc因为它的返回类型
  • C# 中的 vbNullChar 等价物是什么?

    C 中 Visual basic vbNullChar 的等价物是什么 我想在 C 中复制这个 VB 语句 Dim sVersion As String sVersion New String vbNullChar 255 我怀疑你想要 s
  • 为什么 C# 内联 if 结果与 if 不同?

    这是我的代码 object w 44 var k1 w is double Convert ToSingle w unchecked uint Convert ToInt64 w if w is double w 22 结果是k1 44 0
  • XIB 中用作自定义 UITableViewCell 的自定义按钮不响应点击 (ios7)

    因此 我在这里将工作的 ios 6 应用程序升级到 ios7 现在我无法在 uitableviewcells 内的自定义按钮 或其他子视图 上接收点击或其他操作 Edit My code 这是我部署 PlaceCell 的位置 UITabl
  • Java/Mysql 服务器程序中的电子邮件帐户密码存储

    我处于一个棘手的境地 我正在编写一个应用程序 使用我公司的电子邮件帐户向客户发送电子邮件 这里的问题是我必须拥有该帐户的密码才能使服务器上的邮件服务从该帐户发送电子邮件 我知道密码永远不应该以纯文本形式存储 尤其是用于重要电子邮件帐户的密码
  • Vim netrw 询问“按 ENTER 或键入命令继续”

    我注意到 当我开始新的一天并打开 vim 然后使用 Exp 时 我收到 按 ENTER 或键入命令继续 提示 通常这会在执行外部命令时显示 我不记得 Exp 过去这样做过 而且 第一次使用netrw时才会出现提示 虽然微不足道 但我觉得这很
  • 如何在 Stata 中查找并替换字符串变量的一部分?

    我正在使用一个基本上是 URL 的变量 所以观察结果包括像这样的值 www google com https www google com https yahoo movies com 我正在尝试创建一个 do 文件以将一堆这些文件导入到
  • 使 toPrimitive 转换取决于上下文[重复]

    这个问题在这里已经有答案了 我希望一个对象在数字上下文中返回一个值 在字符串上下文中返回一个完全不同的值 以下不起作用 foo toString function return string valueOf function return
  • Activity 已泄漏窗口

    在我的启动屏幕中 我做了它 以便它检测 wifi 或 3g 是否启用 如果不是 则会出现一个对话框屏幕提示用户退出并打开其中一个 如果它打开 则代码将继续 我的 logcat 中不断收到有关我的活动有泄漏窗口的错误 我不知道如何解决这个问题