2013-08-02 109 views
1

我正在写一个简单的应用程序来启用android的启动以太网上的adb,用取消按钮来防止在网络上启用adb。当出现超级用户的弹出窗口时,如果立即点击一切正常,但如果等待几秒钟并单击确定,则显示无法更新。Android的java启动失去焦点

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

倒数计时器使用mHandler.postAtTime重复调用可运行。我想我需要在可运行的开始部分重新设置焦点,但对于android来说,我还是一个新手,并且没有任何运气能够找出能够让它开心的东西。

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

回答

0

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

我观察到boot_completed发生在完全引导完成之前。有些东西,不确定究竟是什么,跨越了一切。当我尝试用定时器睡眠或启动可运行的程序时,如果睡眠或定时器在出错时跨越,睡眠和定时器将永远不会返回,甚至不会进入可运行的程序。通过切换到media_mounted,任何事情都已经过去了。

我一直在考虑使用启动应用程序来执行SD中的init.rc文件,因此触发介质装载对于此需求是有意义的。