在activity里启动service之后怎么样才可以得到这个service的实例就是得到service之后可以在外部操作service的一些方法和实例。

解决方案 »

  1.   

    首先你要bindservice,接下来有三种方式。
    1. 扩展binder。如果你的activity与service在同一进程,可行。
    2. 用messenger。activity与service不在同一进程时
    3. 用aidl详细可参考 http://developer.android.com/guide/topics/fundamentals/bound-services.html
      

  2.   

    1.在service里添加你想用的方法
    2.在service里创建binder,然后在binder里调用你在service里添加的方法
    3.在service的onbind里返回这个binder
    4.在activity里重写onserviceConnect得到该binder
    5.调用该binder里的方法这就是activity与service的交互过程
      

  3.   

    清楚了,那时我还没看到具体的service,现在弄明白了,
      

  4.   

    其实可以用ThreadLocal。这个东西一个线程可以拥有一个。然后你在主线程中启动service的时候,service仍然在主线程中进行,所以里面的方法也不能耗时,否则会有anr错误。
    因为是同一个线程,所以你可以在service的oncreate上把它自己存进ThreadLocal里面,在activity拿出来