2011-08-23 4 views
1

내 앱에는 3 가지 활동이 있으며 모든 활동에는 서비스에 대한 액세스 권한이 필요합니다. 따라서 서비스를 세 번 시작하면 세 번 또는 한 번만 시작됩니다. 한번 서비스를 다시 시작하면 이전 데이터가 지워집니다.서비스가 실행 된 횟수

고맙습니다

답변

5

startService으로 서비스를 시작한 후 처음으로 onCreate 메소드가 호출되며 서비스를 시작한 횟수는 중요하지 않지만 해당 메소드는 onStartCommand(Intent, int, int)과 함께 호출됩니다 startService 호출과 관련하여 startService 전화 번호와 관계없이 stopService으로 전화하면 서비스가 중지됩니다.

servive를 중지 할 때 리소스, 스레드를 해제하는 것을 잊지 마십시오.

당신은이 문서를 참조 할 수 있습니다 :

안드로이드 서비스가 이미 시작되면

http://developer.android.com/reference/android/app/Service.html

-1

서비스가 다음 코드

public boolean isServiceRunning() { 
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
     if ("com.example.app.ServiceClassName".equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
    return false; 
} 

로 실행중인 경우 쉽게 확인하실 수 있습니다 또한 여기에 서비스의 라이프 사이클에 대한 자세한 읽을 수 있습니다 : 당신이 경우 http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle

+0

질문 읽기 ... –

3

, 안드로이드는 서비스를 다시 시작되지 않습니다. 호출 예를 들어 :

Intent intent = new Intent(YourService.class.getName()); 
startService(intent); 

... 여러 별도의 활동에서 서비스의 새로운 인스턴스를 생성하지 않습니다 (IPC 청취자 또는 이것 저것에 바인딩). 에 대한 서비스를 실행, 당신은 또한 안드로이드 설정, 응용 프로그램에서이 볼 수, 원격 항목이 서비스이며, 한 번만 나타납니다

com.domain.app 
com.domain.app:remote 

: 당신은 당신이 같은 것을 볼 수, 당신의 DDMS보고이를 볼 수 있습니다 당신의 장치.

서비스가 다시 시작될 때 데이터가 지워지는 경우 상태가 보존되므로 재시작 (예 : 응용 프로그램 종료) 할 때 필요한 모든 데이터를 저장해야합니다 (자세한 내용은 http://developer.android.com/guide/topics/data/data-storage.html 참조).