本帖最后由 joshuaxixi 于 2011-12-07 20:56:22 编辑

解决方案 »

  1.   

    你可以在service发送广播给BroadcastReceiver,然后在BroadcastReceiver的onReceive()方法中发送通知(Notification)给主界面,这样就达到目的了,一旦后台任务完成则提醒用户
      

  2.   


    也就是说我在发送的activity调用一个service,并跳回主界面,发送完毕以后发送广播给主界面的activity,收到发送结束以后弹出个toast什么的就行是吧?还有因为每次发送都要调用service,是不是该把具体的实现放在onStartCommand里面而不是onStart里面呢?多谢指教
      

  3.   

    不需要service直接开线程就是了。。
      

  4.   

      改正一下:在Service里面启动一个广播接收器,通过Socket监听到的数据,如果接收到数据 则向广播发送接收到的数据。如果想停止广播,则停止 服务即可,在停止服务里面注销掉广播接收器。
      

  5.   


    这个想法跟我的一样,直接起一个AsyncTask,通过Handler与UI界面进行交互,感觉比用Service+BroadCast要好。
      

  6.   

    了解了,我试试AsyncTask还有一个问题,就是加入我的新线程是在activity01中起的,在执行过程中我跳转到activity02了,这样的话这个线程还在执行吗?
      

  7.   

    onStartCommand和onStart其实是同一个方法,只是onStartCommand是2.0和2.0以后才有的方法,你可以看到onStart方法已经过时
      

  8.   

    UI线程不会影响普通多线程,AsyncTask其实是java封装的异步多线程,并不推荐什么地方都用AsyncTask,这个类一般用于批处理任务