2013-05-10 53 views
0

我是java/android新手。在接口实现中获取自我实例

我有有2种方法的服务类....准备()和执行()..

都是异步调用,所以我要做的就是,准备调用()和等待prepareFinished我听....当准备方法结束时,用于相同的服务实例我想调用execute()方法.....

按照下面我尝试:

for(int idx = 0; idx < services.length; idx++) 
{ 
    MyService instance = services[idx]; 
    instance.setDataReadListener(new AsyncDataReadListener() { 
     @Override 
     public void prepareFinished(ServiceInfo info) { 

      //I would like to get the self instannce here to call another 
         //method after been prepared. something like::: sender.execute() 

     } 
    }); 
} 

//In a button click I call above, for each service its prepared I would like another method of the same service instance to be called: 
for(int idx = 0; idx < services.length; idx++) 
{ 
    MyService instance = services[idx]; 
    //async call 
    instance.prepare(); 
} 

我该如何实现它?

Tks。

回答

0

制作实例决赛:

final MyService instance = services[idx]; 

,并且可以调用instance.execute()prepareFinished

0

instancefinal并直接引用它:

for(int idx = 0; idx < services.length; idx++) 
{ 
    final MyService instance = services[idx]; 
    instance.setDataReadListener(new AsyncDataReadListener() { 
     @Override 
     public void prepareFinished(ServiceInfo info) { 
      instance.execute() 
     } 
    }); 
} 
0

有什么不对这种做法?

final MyService instance = services[idx]; 
instance.setDataReadListener(new AsyncDataReadListener() { 
    @Override 
    public void prepareFinished(ServiceInfo info) { 

     instance.execute(); 
    } 
});