解决方案 »

  1.   

    是因为没有关闭之前的线程吗,后来我又增加了Thread.currentThread.destroy()方法,也不行啊
      

  2.   

    可以参考ddpush任意门推送的android客户端示例工程。简单来说,这个线程应该放到service中,初始化service的时候开启,在onStartCommand返回return START_STICKY;
    不过这样也未必能很好的保持,本人测试一般几十小时后还是会被kill掉,所以service可以发出一个不会被取消的通知
    n.flags |= Notification.FLAG_ONGOING_EVENT;
    n.flags |= Notification.FLAG_NO_CLEAR;
    这样这个通知无法消除可能会让用户感到讨厌,不过能较好地保证service不被kill,从而让这个线程持续运行。需要衡量用户体验。