1

我正在编写一个简单的应用程序,以在 android 启动时通过以太网启用 adb,并带有一个取消按钮以防止在网络上启用 adb。当超级用户的弹出窗口出现时,如果立即单击一切都很好,但是如果我等待几秒钟并单击确定,则显示无法更新。

onCreate 使用 mHandler 来启动一个 runnable,用于倒数计时器。当我使用 mHandler.postDelayed 尝试延迟启动过程时,显示永远不会更新。当我使用 mHandler.postAtFrontOfQueue 时,倒计时显示功能正常,但在超级用户对话框之后,屏幕无法更新。

倒数计时器使用 mHandler.postAtTime 重复调用 runnable。我想我需要在 runnable 的开头放一些东西来重置焦点,但是我还是 android 的新手,没有运气弄清楚什么会让它开心。

当应用程序手动运行时,一切都是正确的。在第二个机器人上,一切都是正确的。

4

1 回答 1

0

通过从使用“android.intent.action.boot_completed”更改为使用“android.intent.action.MEDIA_MOUNTED”,我找到了解决该问题的方法。

我观察到的是 boot_completed 发生在完全启动完成之前。有什么东西,不知道到底是什么东西,踏遍了一切。当我尝试使用计时器睡眠或启动可运行对象时,如果睡眠或计时器超过了出错的时间,则睡眠和计时器将永远不会返回,也不会进入可运行对象。通过切换到 media_mounted,任何踩到的东西都已经过去了。

我一直在考虑使用启动应用程序从 SD 执行 init.rc 文件,因此触发媒体挂载对于这种需求是有意义的。

于 2013-08-03T06:57:11.080 回答