Android - 密钥调度超时

2023-11-25

在我的 Android 应用程序中,我遇到了非常奇怪的崩溃,当我按下 UI 上的按钮(图像)时,整个应用程序冻结,几秒钟后,我看到可怕的强制关闭对话框出现。

以下是日志中打印的内容:


WARN/WindowManager(88): Key dispatching timed out sending to package name/Activity
WARN/WindowManager(88): Dispatch state: {{KeyEvent{action=1 code=5 repeat=0 meta=0 scancode=231 mFlags=8} to Window{432bafa0 com.android.launcher/com.android.launcher.Launcher paused=false} @ 1281611789339 lw=Window{432bafa0 com.android.launcher/com.android.launcher.Launcher paused=false} lb=android.os.BinderProxy@431ee8e8 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{4335fc58 package name/Activity paused=false}}}
WARN/WindowManager(88): Current state:  {{null to Window{4335fc58 package name/Activity paused=false} @ 1281611821193 lw=Window{4335fc58 package name/Activity paused=false} lb=android.os.BinderProxy@434c9bd0 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{4335fc58 package name/Activity paused=false}}}
INFO/ActivityManager(88): ANR in process: package name (last in package name)
INFO/ActivityManager(88): Annotation: keyDispatchingTimedOut
INFO/ActivityManager(88): CPU usage:
INFO/ActivityManager(88): Load: 5.18 / 5.1 / 4.75
INFO/ActivityManager(88): CPU usage from 7373ms to 1195ms ago:
INFO/ActivityManager(88):   package name: 6% = 1% user + 5% kernel / faults: 7 minor
INFO/ActivityManager(88):   system_server: 5% = 4% user + 1% kernel / faults: 27 minor
INFO/ActivityManager(88):   tiwlan_wifi_wq: 3% = 0% user + 3% kernel
INFO/ActivityManager(88):   mediaserver: 0% = 0% user + 0% kernel
INFO/ActivityManager(88):   logcat: 0% = 0% user + 0% kernel
INFO/ActivityManager(88): TOTAL: 12% = 5% user + 6% kernel + 0% softirq
INFO/ActivityManager(88): Removing old ANR trace file from /data/anr/traces.txt
INFO/Process(88): Sending signal. PID: 1812 SIG: 3
INFO/dalvikvm(1812): threadid=7: reacting to signal 3
INFO/dalvikvm(1812): Wrote stack trace to '/data/anr/traces.txt'

这是按钮(图像)的代码:


findViewById(R.id.endcallimage).setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        mNotificationManager.cancel(2);

                        Log.d("Handler", "Endcallimage pressed");

                        if(callConnected)
                        elapsedTimeBeforePause = SystemClock.elapsedRealtime() - stopWatch.getBase();

                        try {
                            serviceBinder.endCall(lineId);
                        } catch (RemoteException e) {
                            e.printStackTrace();
                        } 
                            dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.FLAG_SOFT_KEYBOARD));
                            dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
                    }
            });     

如果我评论以下内容,按下按钮(图像)不会导致崩溃:


try {
      serviceBinder.endCall(lineId);
    } catch (RemoteException e) {
      e.printStackTrace();
    } 

上面的代码通过应用程序的多个级别向下调用并进入本机层(NDK),通过多个对象的调用是否会导致强制关闭?这似乎不太可能,因为其他几个按钮也可以毫无问题地执行相同的操作。

原生层怎么样?我使用 NDK 构建的某些代码是否会导致该问题?

关于问题的原因可能是什么还有其他想法吗?


您的 onClick 实现必须尽可能快。一般来说,昂贵的操作应该卸载到后台线程。

在 onClick 中,尝试:

Thread t = new Thread(){
    public void run(){
        your_stuff();
    }
};
t.start();

而不仅仅是

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

Android - 密钥调度超时 的相关文章

  • 设置文本视图 Android 的文本颜色

    在 string xml 文件中我使用以下标签
  • Android 中多个蓝牙连接的自定义 UUID

    我有一个 Android 设备作为服务器连接到多个蓝牙 Android 客户端 我了解 UUID 的概念以及它的独特之处 我的问题是 我可以为连接到我的服务器的所有客户端使用相同的 UUID 吗 如果没有 我如何以编程方式为我的客户端生成
  • 如何自定义菜单项的背景颜色?

    我正在尝试定制Toolbar的弹出菜单 现在我无法设置菜单项的背景颜色 我的 styles xml 如下所示
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • 按下按钮时应用不同的样式

    有没有办法在按下按钮时将样式应用于按钮 如果我有一种风格样式 xml
  • Android应用程序组件销毁和重新创建的详细信息

    有人可以向我提供一些具体的 值得信赖的 最好是简洁的 信息 内容如下 系统销毁和 如果适用 重新创建组件的顺序 片段 活动 活动的线程 异步任务 计时器 静态数据 类何时卸载 其他类中的线程 异步任务 定时器 主机 TabActivity
  • Android:后台Activity可以执行代码吗?

    后台的活动是否被视为 正在运行 并且可以执行代码 还是处于挂起状态 他们暂停了 活动生命周期 http developer android com reference android app Activity html ActivityLi
  • Android Studio 与本地网络共享上的项目文件

    这是我的设置 Android Studio 项目文件位于 Ubuntu 14 10 盒子上的共享文件夹中 尝试在 Windows 8 机器上运行 Android Studio 1 0 2 并将 U 驱动器映射到包含项目文件的 Ubuntu
  • 从 BroadcastReceiver 类调用活动方法

    我知道我可以做一个内部接收器类来调用接收器中的任何方法 但我的主要活动太大了 要做的事情也很多 因此 我需要一个扩展广播接收器的类 但它不是内部类 并且可以从我的主要活动中调用一种方法 我不知道是否可能 但我的活动是家庭活动和 single
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 如何在 Android 中从 WorkManager 取消工作?

    我已经保存了 WorkManagerUUID转换成String在领域数据库中 这是代码 Constraints constraints new Constraints Builder setRequiredNetworkType Netwo
  • 您使用什么物理 Android 设备进行测试?

    有什么好的推荐用于测试目的的物理 Android 设备吗 我正在苹果阵营寻找像 iPod touch 这样的设备 可以帮助 iOS 开发人员测试他们的东西 我知道有 Nexus One 但那东西相当昂贵 而且我并不真正关心手机的东西 而是可
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A

随机推荐

  • Mac 上的 cronjobs 入门

    我正在尝试熟悉 cron 作业 我想我已经了解了基本的想法 调度 语法等 但是 我似乎无法在我的 mac 上使用终端来正确地完成它 我到底在哪里可以找到定时任务 我应该如何引用脚本的路径 我想做的是在远程机器上点击 php 脚本 http
  • CSS 中不断扩展的中间体

    我将如何设计一个具有固定高度的页眉和页脚 附加到浏览器窗口的顶部和底部 但中间可扩展的网站 滚动条仅适用于中间 图中的橙色部分 因此页面的其余部分永远不需要滚动 为了更清楚地解释 我在下面画了一个模型 理想情况下 它需要完全用 CSS 和
  • 如何在 SSRS 报告中创建动态列

    I need to create a SSRS report like 我有 3 列的表格开发者名称 工作时间 日期 如何创建报告以及获取数据的 sql 查询是什么 我不要求完整的 SQL 查询 我只需要一些提示 您可以使用 Matrix
  • Python 重新“伪造转义错误”

    我一直在摆弄 python re 模块 search方法 cur是来自 Tkinter 条目小部件的输入 每当我在条目小部件中输入 时 它都会引发此错误 我不太确定错误是什么或如何处理它 任何见解将不胜感激 cur是一个字符串 tup 0
  • SevenZipSharp - 压缩内存流

    我正在使用 SevenZipSharp 将文件压缩为 zip 文件 有没有办法使用它从内存流创建 zip 也就是说 之前将文件加载到内存流中 谢谢 玛雅 我正在使用 SevenZipSharp 来处理流 没有任何问题 SevenZip Se
  • 这个标志到底意味着什么? |=

    我很想了解这个运营商 我在 Java 中设置标志时见过这种表示法 例如 notification flags Notification FLAG AUTO CANCEL 它是否执行某种位操作 这个标记到底有什么作用 还有其他类似的众所周知的
  • 如何在android中打开特定的短信

    有没有办法用特定的短信在android上打开消息传递活动 threadId应该是您要查看的 SMS MMS 线程的 id Intent defineIntent new Intent Intent ACTION VIEW defineInt
  • 是否可以输入多种类型的提示?

    我可以使用类型提示允许两种不同的类型吗 例如 范围 requester可以是以下任一者User or File function log User File requester 从 PHP 8 0 开始 这将是可能的包含联合类型 The 该
  • Subversion:合并时“目标路径不存在”是什么意思?

    使用 subversion 1 5 我有分支 B 它是从分支 A 分支出来的 在两个分支中完成工作后 我将更改从 A 合并到 B 中 使用svn merge http path to A在B 的工作目录中并得到svn Target path
  • 为什么在结构体的构造函数中设置属性不起作用?

    我有以下不允许的代码 下面的错误 为什么 struct A private int b public A int x B x public int B get return b set b value 我收到以下错误 在分配 this 对象
  • 如何让 Matlab 读取正确数量的 xml 节点

    我正在使用 matlab 的 xmlread 内部函数读取一个简单的 xml 文件
  • MapView.onMapReady 从未在 Fragment 中调用以在 MapView 中加载 Google 地图

    我将尝试在 Android 应用程序中的名为的片段上显示地图RoeteFragment 如果我调试我的代码 我会看到该方法onMapReady永远不会被调用 因此地图不会加载 该片段实现了OnMapReadyCallback喜欢需要并且在o
  • JavaScript ecma6 将普通函数更改为箭头函数

    我有那个代码 function defineProperty object name callback if object prototype Object defineProperty object prototype name get
  • 在 UITableView 底部添加活动指示器? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 I have UITableview像第一个这样的分页将从服务器获取 20 个对象并填充UITableView然后 当它到达最后一行时 需要进行另一个服务调用来获取接下来的 20 个对象
  • 在 TestNG/Selenium 中自动重启失败的测试用例

    我正在使用 Selenium webdriver 在 Java 中与 TestNG 一起运行 X 数量的测试用例 我希望任何测试用例一旦失败就自动重新启动 无论是从开始还是从故障点 我知道TestNG框架有以下方法 Override pub
  • 对网络响应进行单元测试。在调试时有效,而不是在实际运行时有效

    我目前正在尝试测试是否确实收到了网络响应 虽然我知道这不是我应该做的测试 但这是我自己的好奇心 如果可能的话我想继续下去 就目前情况而言 我已经成功创建了测试 请求会毫无问题地发送到齐射队列 现在奇怪的部分 该请求永远不会被执行 这是我如何
  • 如何禁止简单策略展开算术表达式?

    The simpl策略展开诸如2 a 匹配树 这看起来一点也不简单 例如 Goal forall i Z fun x gt x i 3 i 3 simpl 导致 forall i Z match i with 0 gt 3 Z pos y
  • DateFormatter 不返回“HH:mm:ss”的日期

    这是代码摘录 func mapping map Map time lt map time TransformOf
  • 弱引用错误?

    TestMethod public void Memory var wr new WeakReference aaabbb Assert IsTrue wr IsAlive GC Collect GC Collect GC Collect
  • Android - 密钥调度超时

    在我的 Android 应用程序中 我遇到了非常奇怪的崩溃 当我按下 UI 上的按钮 图像 时 整个应用程序冻结 几秒钟后 我看到可怕的强制关闭对话框出现 以下是日志中打印的内容 WARN WindowManager 88 Key disp