2014-03-26 40 views
0

这是我的代码。我想打电话给同​​两个时间内for如何暂停活动,直到服务停止?

for (int camIdx = 0; camIdx < cameraCount; camIdx++) { 
    Camera.getCameraInfo(camIdx, cameraInfo); 
    if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
     try { 
      Intent camIntent = new Intent(getApplicationContext(),CameraService.class); //calling service first time 
      camIntent.putExtra("camNum", camIdx); 
      startService(camIntent); 
     } catch (RuntimeException e) { 
      e.printStackTrace(); 
     } 
    } else if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { 
     try { 
      Intent camIntent = new Intent(
getApplicationContext(),CameraService.class); //calling service first time 
      camIntent.putExtra("camNum", camIdx); 
      startService(camIntent); 
     } catch (RuntimeException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

我想暂停时服务运行我的活动,否则我的活动将再次调用cameraService而服务已在运行。我怎样才能做到这一点?

+0

圣牛!你有没有听说过缩进? –

+0

我不认为你正确地接近问题。看看[这个问题](http://stackoverflow.com/questions/9527728/prevent-multiple-copies-of-an-android-service) –

回答

0

你需要添加一个侦听器,我添加了一些示例代码。跟着它一定是有帮助的。

service.SearchEmployee(searchStr, Offset, NO_OF_ITEM_IN_PAGE, onlyManager, new IRequestListener<List<Employee>>() { 
         @Override 
         public void onRequestFailed(String message) { 

           Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show(); 
           requestCompleted = true; 


         } 

         @Override 
         public void onRequestCompleted(List<Employee> data) { 

           if (Offset == 1) 
            cacheMap.put(searchStr, data); 

           tempList = data; 
           requestCompleted = true; 
           lock.notifyAll(); 
          } 

        }); 
+0

我打电话给里面的for循环,我怎么可以使用listener。 。? –

+0

在循环内调用服务,这不是一个好主意。 –

+0

单独调用服务..或用AsynTask或cacheBackground函数运行该服务。在那你实现定制的侦听器。 –