2013-05-25 2 views
1

저는 무한히 백그라운드에서 계속 실행하고 싶은 안드로이드 서비스를 만들려고합니다. 그래서 내가 좋아하는 하나 만들려고 :안드로이드 서비스가 무기한으로 계속 실행됩니다.

@Override 
public IBinder onBind(Intent arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    Toast.makeText(this, mssg, Toast.LENGTH_SHORT).show(); 
} 

public int onStartCommand(Intent intent, int flags,int startid) { 
    Toast.makeText(this, mssg, Toast.LENGTH_LONG).show(); 
    Log.d("Start:", "Service running"); 

      // my code here 

    return START_STICKY; 
} 

을하지만이 코드를 실행하면, 토스트 메시지와 로그는 한 번만, 그래서 서비스는 처음 실행 의미 하는가 표시됩니다. 그것이 다시 실행되면 n의 API가 반복적으로 호출되고 있습니까?

감사, 그림자.

답변

1

서비스를 무기한으로 실행하고 동일한 코드를 반복해서 실행하는 것은 매우 다른 두 가지 작업입니다. 제공 한 코드를 사용하면 안드로이드 시스템이 멈추지 않는 한 백그라운드로 서비스를 실행할 수 있습니다.

구현하려는 기능이 무엇인지 잘 모르겠지만 정확히 어떤 서비스가 사용되고 무엇이 요구 사항인지 읽는 것이 좋습니다.

+0

아, 연속적으로 이벤트를 찾기 위해 무한 루프를 두는 스레드와 비슷합니까? – shadow

+0

아니, 무한 루프 *와 같지 않아. '서비스'는 특정 업무를 수행하기 위해 헌신 된 구성 요소입니다. UI 컨텍스트를 요구하지 않고 이러한 작업을 수행하며 작업을 완료하는 데 시간 제한이 없습니다. 백그라운드에서 실행되고 완료되면 알려주는 작업과 같습니다. 작업을 다시 수행하도록 요청하면 작업을 다시 수행 할 수 있습니다. 마술처럼 다시 실행하지는 않습니다. 구현을 계속하기 전에 더 자세히 읽어 보시기 바랍니다. -> http://developer.android.com/guide/components/services.html –

관련 문제