2014-03-26 155 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函數運行該服務。在那你實現定製的偵聽器。 –