【问题标题】:ref:Android Application class not destroyed when last activity is destroyed and handler thread destroyref:当最后一个活动被销毁并且处理程序线程被销毁时,Android应用程序类没有被销毁
【发布时间】:2014-02-11 20:03:52
【问题描述】:

我在“Android 应用程序类在最后一个活动被销毁时未销毁”中发布了相同的问题。

我的问题是我在 mainactivity oncreate 中创建了一个单例,其中的单例创建了用于数据库写入的处理程序线程。在主要活动的破坏中,我正在杀死我的线程。当我按下后退按钮进入应用程序时,它在那里死掉的线程没有问题,但是下次我选择应用程序时,因为单例仍然存在,我的线程没有启动,所有后续的数据库写入都失败。

我应该在这里采取什么方法

如果线程还活着,我应该只检查写入尝试,如果不再次创建它(希望这不会造成任何问题)还是?谢谢建议

【问题讨论】:

    标签: android


    【解决方案1】:

    我去了一个 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 上。我希望这种方法没有潜在的问题,比如一些部分被破坏的僵尸线程:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      相关资源
      最近更新 更多