2012-06-15 136 views
0

我有一组长数据库操作,我在BackgroundWorker中运行以保持UI响应。后台线程导致应用程序崩溃后无错误

如果设备在这个后台线程仍在运行时被旋转,则正常的Activity生命周期将运行(OnPause()等等),并且视图按我的预期重新加载。在视图重新加载后不久,整个应用程序崩溃,没有任何相关的错误消息或以ddms调试输出,据我所知。

崩溃似乎不是异常的结果。在后台线程中,我将数据库操作封装在try/catch中,并且它们从不被触发。我应该寻找什么样的错误不会触发异常?

+0

如果您将Context(Activity,View或从Android.App.Context派生的任何内容)传递给该线程,该线程可能试图访问处置的对象。 – Matthew

+0

谢谢,马修。我传递一个委托,它是View的成员变量。有趣的是,当数据库例程完成并且视图状态“消失”时,委托仍然被调用。我仍然不确定是什么导致了崩溃,为什么我没有得到任何错误输出,但我发现我可以通过观察者模式来阻止它。我在OnResume中将该视图注册为数据库操作的观察者,并在OnPause中注销它。 – joates

回答

0

我的猜测是你在BackgroudWorker中放置了一些与UI相关的工作。通过使用RunOnUiThread()运行这些方法。

相关问题