2013-02-14 6 views
3

정적 인 방법으로 서비스를 시작하고 싶습니다. 그래서 내 활동에서 내가 여기 onroid 서비스가 호출되지 않습니다.

SpeechActivationService.makeStartServiceIntent(
       this.getApplicationContext(), 
       "WordActivator"); 

는 여러 로그 지점이 볼 수 있듯이 서비스 클래스 http://dpaste.com/hold/928115/에서 확장 실제 클래스, 예를 들어 주시길 onCreate 메소드에서.

이것은 기록되지 않았습니다. 로그 텍스트를 makeStartServiceIntent 메서드에 넣는 경우에만 표시되지만 onCreate 메서드에는 표시되지 않습니다. 내가

<service android:name="root.gast.speech.activation.SpeechActivationService"/> 

서비스가 시작되지 않는 이유 어떤 아이디어를 가지고

public static Intent makeStartServiceIntent(Context context, 
     String activationType) {   
    Intent i = new Intent(context, SpeechActivationService.class); 
    i.putExtra(ACTIVATION_TYPE_INTENT_KEY, activationType); 
    return i; 
} 

매니페스트 파일에서 :

다음은 makeStartServiceIntent 방법입니까?

답변

8

makeStartService()은 사용자를 위해 인 텐트를 생성합니다. 실제로 서비스를 시작하기 위해 의도를 시작한 것으로 보이지 않습니다. this.getApplicationContext() 작동하는지 당신은 단순히 또한 this해야 작업을 사용하도록 Context 객체의 내부에 이미 가능성이 있음이

Intent i = SpeechActivationService.makeStartServiceIntent(this,"WordActivator"); 
startService(i); 

주처럼보십시오. 이외에도

+0

그래, 나는 그가 실제로 의도를 가지고 무엇인가하고 있는지 물어 보려했다. – dmon

10

startService()을 보여주는 코드를 게시하지에서, 당신이 프로젝트의 실제 SpeechActivationService 클래스가 게시 된 코드 링크를 가정 (당신의 SpeechActivationService 클래스와 일치하지 않습니다 매니페스트에 Service의 패키지 이름처럼 보이고,에서 복사 한 클래스가 아닙니다.)

<service android:name="com.mkyong.android.SpeechActivationService"/> 
관련 문제