想实现1个退出Activity后Service在后台运行,是用serviceConnection通讯的代码

解决方案 »

  1. 用startservice启动服务,而不是bindservice就OK了
      

  2. 楼上的前辈这样做可以,但不可以与serviceConnection通讯了,我想要与serviceConnection通讯
      


  3.     private ServiceConnection conn = new ServiceConnection() {  
          
                @Override  
                public void onServiceDisconnected(ComponentName name) {  
                }  
          
                @Override  
                public void onServiceConnected(ComponentName name, IBinder service) {  
                      //启动service
                }  
            };          bindService(intent, conn, BIND_AUTO_CREATE); 应该这样就可以了
      

  4. 先start
    后bindservice便不会随着activity的销毁而销毁了。。
      

  5. 如三楼所说
    先start使得service在Activity退出后依然能跑,用bindService来获得你要的connection。
        Intent ServiceIntent = new Intent(this, yourService.class);
        this.startService( ServiceIntent );
        //bindToService获得正在运行的service
            if (false == this.bindService(ServiceIntent, mServiceConnection, 0))
            {
             Log.e(TAG, "fail to bind to music service");
            }    具体也可以参考这个aidl远程调用:http://www.cnblogs.com/allin/archive/2010/05/15/1736462.html
      

  6. 那这段代码写在哪里??在哪里绑定呢??onCreate???
    如果放入onCreate()中就存在重复startService和bindService的问题,因为Activity会重复的退出进入,这怎么解决呢?
      


  7. startService有这么个说明
    if it is running then it remains running. 
    所以尽管放在onStart里就行了
      

类似问题 »