2016-07-06 3 views
0

새로운 데이터로 서비스를 다시 시작하고 싶습니다. 서비스 중 하나 인 객체 <> 서비스간에 복잡한 통신을하지 않고 서비스중인 모든 객체를 릴리스 할 수 있습니다. Retrive service closing time?

나는이 시도, 모든 작동 : 다른 장치에서 마감 시간에 대해 걱정할 내가해야하는 경우

if(isMyServiceRunning(PlayerService.class)) 
      { 
       getActivity().stopService(intenx); 
       positionTemp--; 
       final Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         getActivity().startService(intenx); 
         positionTemp++; 
        } 
       }, 500); 

      } 
      else{ 
       getActivity().startService(intenx); 
      } 
     } 
    }); 

하지만 난 몰라? 서비스가 500ms 이상 종료 될 가능성이 있습니까? 내 Motorola는 서비스를 종료하기 위해 300ms가 걸리고 문제없이 다시 실행할 수 있습니다.

어떤 조언이 필요합니까? 서비스와의 커뮤니케이션은 정말 쉽지 않습니다. 거의 15 가지 컨트롤이있는 음악 플레이어입니다. 가장 쉬운 방법은 현재 서비스를 중단하고 새로운 항목 변수로 다시 시작하는 것입니다.

답변

0

불필요한 것처럼 보이며 모든 사용자 작업에 500ms 지연이 추가됩니다. 서비스는 중지하고 다시 시작하지 않고 여러 개의 인 텐트를 수용 할 수 있습니다. 새로운 의도를 각각 onStartCommand()으로 처리하십시오. 조각과 서비스간에 복잡한 통신이 필요하지 않습니다. 프래그먼트는 모든 요청을 서비스에 전달하고 서비스가 그 일을하도록해야합니다. 더 나은 UI를 위해 서비스에 바인딩해야 할 수도 있지만 서비스의 상태에 따라 UI를 업데이트 할 수 있습니다.

관련 문제