0

按照不同的或多或少的官方教程中的指示,我已经使用 Android 开发工具包 (16.0.1) 设置了 Eclipse (3.7.2),包括 Dalvik 调试监视器服务 (16.0.1)。

如果我编写一个带有启动器 Activity 的“标准”Android 应用程序,那么我可以在我的代码中设置断点,在虚拟 Android 设备上运行它,并且断点按预期中断,如果出现以下情况,我可以整晚调试代码我想。

当我开始使用没有启动器 Activity 的 Android 主屏幕小部件而不是“标准”Android 应用程序时,问题就出现了。如果我想调试我的代码,我仍然可以轻松设置断点。假设我在我的 AppWidgetProvider 实现的 onUpdate 中直接放置了一个断点,并通过将我的小部件实例添加到 AVD 来测试它。断点不会中断。我想,这是因为在调试配置中,我的小部件的启动操作是“什么都不做”,因为我没有可以选择的活动。

谷歌搜索,我发现当我的 AVD 运行时,我可以转到 Eclipse 中的 DDMS 视图,在它的设备选项卡中,我可以选择我的小部件进程,然后单击一个可爱的绿色错误“调试选定的进程”。如果在那之后,我在 AVD 中创建了我的小部件的一个实例,那么执行确实会在我的断点处中断。

但是我的下一个问题来了:当这种情况发生时,我在调试器中有大约几秒钟的时间,在 Android 决定我的小部件进程已挂起(这是真的)并且应该被拍摄(这不是真的)之前!因此我的问题是:如何防止系统拍摄我的进程在断点处停止?

注意:在日志中,我收到了那种通知:

06-11 17:02:19.900: W/ActivityManager(59): Scheduling restart of crashed service [...]
4

1 回答 1

1

IntentServcie从您的小部件接收器 ( )启动一个不在主线程上运行的服务 (例如onUpdate())。在那里做你所有的工作。

于 2012-06-21T07:35:53.937 回答