我在“Android应用程序类中发布的相同问题未在上次活动被销毁时被销毁”。
我的问题是我有一个单例,我在mainactivity oncreate中创建,单例和其他东西创建我的数据库写入的handlethread。在主要活动的ondestroy我杀了我的线程。当我按下后退按钮到相当的应用程序,它死的线程没有问题,但下次我选择应用程序,因为单例仍然存在我的线程没有启动,所有后续的数据库写入失败。
我应该采取什么方法
我应该检查一次写入尝试,如果线程处于活动状态,如果没有再次创建它(希望这不会导致任何问题)或者?谢谢你的建议
答案 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上。我希望这种方法没有潜伏的问题,比如可能是一些部分被破坏的僵尸线程:)