我新建了个service,是指定在新的进程空间中运行的,我需要在service中循环的执行某个操作,因此service一直不会返回。这样一段时间后,我的service就自动停止了,没有运行了,由于在新的进程空间中,也没法断点调试,不知道是什么原因,通过时间来看,初步判断是ANR。我想让service不停的循环执行这个操作。实验过了,这个操作不能在子线程中运行,一建子线程,就崩掉,因此没法通过子线程的方式来执行这个操作。请问该怎么解决呢?谢谢

解决方案 »

  1.   

    我嘞个去,这CSDN是怎么了,高手都跑掉了......
      

  2.   

    怎么可能不能创建子线程,处理耗时操作是不可以在service里面处理的,因为service也就相当一个界面的进程,在这里面是不被允许处理耗时的数据,处理耗时的数据只能在创建新的线程里面。
      

  3.   

    service里面不能放耗时操作,service并不等于一个线程,如果要做耗时久的操作,在service里面起一个线程完成吧。
      

  4.   

    说实话,我都很难相信为什么不能创建子线程来操作。我是操作的framebuffer,用c封装成的库,从framebuffer获取数据,然后返回给java层处理。现在的情况是,只要在主线程中调用,ok,没有任何的问题。相同的代码,只要新启动线程来操作,程序就死掉logocat一直有数据的交互,直到程序崩掉。
      

  5.   

    对啊,我的想法也是,用新的线程来操作,但是新建一个线程来操作,程序就崩掉了啊,其他的操作都是可以用新的线程来处理的,这个framebuffer,一新建线程,程序就要死啊!代码我检查无数遍了,不知道问题在哪里
      

  6.   

    http://topic.csdn.net/u/20111026/11/36c08699-b533-4a18-adc3-436a0a6ca503.html
    17楼是我贴的代码。我已经问了无数遍了,得不到解答啊....
      

  7.   

      不能够呀    不能创建子线程。。 估计是你的service有问题。 前面很多哥们都说了,你在service之中循环。 一定会阻塞线程的。
      

  8.   

    即使我不用service,我就在UI线程中创建一个子线程来操作,程序就会崩掉。试过了无数次。这真的让人难以相信,可是事实是我确实遇到了,代码页看了又看,找不出问题,不知道是否与framebuffer有关,不允许子线程操作。这个问题注定要折腾死我,已经N久了。崩溃.....