0

出于某种奇怪的原因,我不完全确定为什么,我不仅得到了我的应用程序的 ANR,还得到了整个 systemui 的 ANR。太糟糕了,我必须重新启动,重新启动后它必须“优化”我所有的应用程序,就像它损坏了某些东西一样(任何人都可以解释为什么会发生这种情况?)。

我假设我的部分代码非常糟糕以至于它们导致了这种情况,但是即使是恶意代码也应该能够使 systemui 过载吗?反正...

我正在做的是我正在尝试启动一项服务来处理屏幕录制。活动(来自片段)请求许可(获得许可,我在屏幕右上角看到 Screencast 图标),然后它绑定一个处理任何状态更改的服务。我所说的状态变化的意思是......

状态:

  • Dead - 意味着它需要被初始化和准备
  • 活着 - 意味着它需要启动并完全初始化/准备好
  • 已开始 - 表示当前正在录制。
  • 暂停 - 意味着它将在重新开始后开始一个新视频,它将所有临时视频合并为一个(尚未制定出详细信息)。
  • 已停止 - 意味着将所有文件合并为一个,然后通过广播中的意图发送 URI(还没有到这一步)。

它从死 -> 活着 -> 开始 <-> 暂停 -> 停止 -> 死。至少这是总体计划。我计划有一个浮动按钮作为远程控制服务,因此在接收器(本地)上广播到等待它完成的我的片段。

现在,我打算拥有的东西已经够多了,让我们进入我现在拥有的东西。有点乱,我以前从来没有做过这种事情,所以我在这里问。当我说我已经尝试了很多东西时,请相信我,不幸的是,测试新解决方案的唯一方法是重新启动并等待 15 分钟,而 Android 会再次优化所有内容。现在我知道它是一个“长”代码段,但我会说它崩溃的一个地方是 stopRecording(),在第 216 行。

代码在这里

让我知道是否应该进行任何更改。

最后:是否应该在另一个线程上运行这些?这可能是问题吗?为什么应用程序不会只崩溃而不是systemui?

4

0 回答 0