ref:当上次活动被销毁并且处理程序线程被破坏时,Android应用程序类不被销毁

时间:2014-02-10 22:06:47

标签: android

我在“Android应用程序类中发布的相同问题未在上次活动被销毁时被销毁”。

我的问题是我有一个单例,我在mainactivity oncreate中创建,单例和其他东西创建我的数据库写入的handlethread。在主要活动的ondestroy我杀了我的线程。当我按下后退按钮到相当的应用程序,它死的线程没有问题,但下次我选择应用程序,因为单例仍然存在我的线程没有启动,所有后续的数据库写入失败。

我应该采取什么方法

我应该检查一次写入尝试,如果线程处于活动状态,如果没有再次创建它(希望这不会导致任何问题)或者?谢谢你的建议

1 个答案:

答案 0 :(得分:0)

我去了一个if((sOrganizerManager.mDatabaseThread == null)||(!sOrganizerManager.mDatabaseThread.isAlive()))         {             sOrganizerManager.mDatabaseThread = new OrganizerDatabaseInsertThread(c,sOrganizerManager);             sOrganizerManager.mDatabaseThread.start();             sOrganizerManager.mDatabaseThread.getLooper();             Log.d(TAG,“后台数据库线程已启动”);
        }

检查我的单例获取函数,这解决了我的数据库写入问题。但我不确定这是否可以。就像我说我正在使用mOrganizerManager.destroyDbThread();在我的主要onDestroy上。我希望这种方法没有潜伏的问题,比如可能是一些部分被破坏的僵尸线程:)