2012-11-01 4 views
2

onCreate에서 시작하려는 IntentService가 있습니다. 화재이고 잊어 버린 웹 사이트에 전화를 걸면 downloadmanager를 통해 다운로드가 시작됩니다. 내 서비스가 시작되고 있다고 생각하지 않습니다. 왜냐하면 그 서비스에서 Log 문을 보지 못하기 때문입니다. 내 매니페스트에 서비스가 있는데, 메인 패키지와 같은 패키지 야. 그것은 또한 내 logcat에 나타나지 않습니다 (다른 스레드가해야한다고).Android IntentService가 호출되지 않습니다

에서 onCreate : 나는 또한 this.startService (하트 비트)를 시도했습니다 *

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

    Intent heartbeat = new Intent(this, Heartbeat.class); 
    startService(heartbeat); 
} 

; 그것도 작동하지 않았다.

는 매니페스트 :

<application 
    android:debuggable="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <service android:name=".Heartbeat" android:enabled="true"/> 

    <activity 
     android:name=".MainActivity" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     android:label="@string/title_activity_main" > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

는 * 또는 안드로이드없이 : 둘 다 이러한 로그 문

public class Heartbeat extends IntentService 
{ 
    public Heartbeat() 
    { 
     super("Heartbeat"); 
     Log.v("SUPER", "SUPER"); 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) 
    { 
     Log.v("HERE", "HERE"); 
     //do other stuff 

콘솔/로그 캣에 표시 : 사용 가능 플래그는 차이

IntentService의 시작을하지 않습니다 , 그리고 내 서비스는 결코 웹 서버를 공격하지 않습니다 (이 코드는 이전에 asynctask에 있었고 작동 중이었습니다). 내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?

편집 - "서비스 의도 {act = com.example.vs_1.Heartbeat}를 찾을 수 없습니다 : 찾을 수 없습니다"라는 내 모든 메시지에서 ActivityManager 태그의 경고가 표시됩니다. 그러나 그 메시지에서 보았던 거의 모든 제안은 이미 완료 한 애플리케이션 태그에 명시되어 있습니다.

+0

나는 메인/매니페스트에서 Heartbeat.class와 .Heartbeat를 긴 이름으로 바꾸려고 노력했다. 아무 것도 사용하지 않았다. –

+0

코드가 괜찮습니다. 난 당신이 로그 콘솔에 sth가 있다고 가정합니다.) (당신은''Log.v()'라고 부르면됩니다) 그리고 콘솔 설정에서 앱이 설정 되었습니까? eclipse 또는 독립형 ddms를 사용합니까?) –

+0

매우 확실합니다. Log.v ("AFTER", "AFTER")를 추가 할 수 있습니다. startService 다음 줄에, 나는 그것을 logcat에서 본다. 나는 일식을 사용하고있다. 따라서 코드가 옳다면 내 옵션은 무엇입니까? IntentService를 사용하기를 원하기 때문에 완벽하게 맞았지만, 오늘 일찍 시작한 asynctask로 되돌릴 수있을 것 같습니다. –

답변

3

아, 음모가 두껍습니다!

"서비스를 시작할 수 없습니다"는 경고로 표시 되더라도 오류입니다.

시스템이 나열된 이름을 가진 클래스를 찾을 수 없기 때문에 발생합니다. 이 경우 은 com.example.vs_1.Heartbeat입니다.

당신이, 당신이

패키지 com.example.vs_1 포함 된 파일 Hearbeat.java을 그 클래스가 필요했는지 확인하려면; 당신의 요소는 속성이 포함 된 경우

공용 클래스 하트 비트 = "com.example.vs_1" 패키지는, 당신은 "(

주 기간을 말할 수있는, 매니페스트에서 IntentService ...

를 확장 . ") 전에"하트 비트 ". 당신은 "패키지"에 대한 다른 값을 사용하고, 다음 패키지 ""의 값입니다 "

/com.example.vs_1.Heartbeat 말을해야하는 경우

.

가 그것은

해야한다 클래스의 단일 기본 패키지 이름을 선택하고 "패키지"값과 동일한 이름을 사용해야한다는 점을 분명히하십시오.

+0

그걸 다른 파일 인 Heartbeat.java에 넣으면 효과가있었습니다. MainActivity.java 파일에서 찾을 수 없다는 것이 이상하게 보입니다. 나는 너에게 상향 줄 의사가 충분하지 않지만, 내가 할 때 나는 확실히 할 것이다. –

0

주 활동이 올바르게 시작되고 있습니까? LogCat은 시스템이 IntentService를 시작할 수없는 경우 오류 메시지를 표시합니다. 또한 "자세한 정보"메시지이므로 LogCat이 표시되도록 설정되어 있는지 확인하십시오. LogCat을 "error"로 설정하면 자세한 메시지가 표시되지 않습니다.

+0

내가 아는 한 올바르게 시작되었다. 시작, 내 빈 페이지를 보여줍니다. 또한 서비스 시작 직후에 Log.v ("AFTER", "AFTER")를 수행 할 수 있으며 그 출력을 볼 수 있습니다. 또한 모든 메시지에서 ActivityManger 태그 , 나는이 경고를 봅니다 (오류가 아니라 ...) "서비스 의도를 시작할 수 없습니다 {act = com.example.vs_1.Heartbeat } : 찾을 수 없습니다 ". 인터넷 검색은 내가 본 것 외에 다른 제안을 가져 오지 않았습니다. 그래서 나는 적어도 내가 올바르게 시작하지 않았 음을 확인했습니다. –

관련 문제