2014-05-19 2 views
5

Android에서 새로 생겼습니다. 이제 서비스 클래스를 사용하여 하나의 프로젝트를 수행하고 있습니다. 내 응용 프로그램에는 ListView이 포함되어 있습니다. 목록보기에서 항목을 클릭하면 하나의 서비스 클래스가 시작됩니다.startservice가 Android에서 작동하지 않습니다.

하지만 그 장소에서 발생하는 몇 가지 문제가 있습니다. 첫 번째 앱을 열 때 서비스 클래스가 작동합니다. 그러나 우리가 다시 가서 ListView를 누르면 서비스 클래스가 작동하지 않습니다. 즉, 그 시간을 부르지 않습니다. 왜이 문제가 발생합니다. 도와주세요. 코드는 아래와 같습니다. 당신이 Service을 시작하면 당신이 stopSelf()를 호출 할 때까지

lv.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 
     String item=pat_id[arg2]; 
     CommonClass.item=item; 
     System.out.println("item 1" +CommonClass.item); 
     startService(new Intent(getApplicationContext(),LocationService.class)); 

     //new Async_view_report().execute(rep_url,item,CommonClass.doctor_id); 
    } 


}); 
} 
+0

서비스 클래스 –

답변

-1

, 그것은 백그라운드에서 실행 유지합니다. 서비스가 아직 실행 중일 때 서비스를 다시 시작하려고하면 서비스가 작동하지 않습니다. 이 경우 bindService()을 사용해야합니다. 나의 조언은 당신이 당신의 일을 마쳤을 때 그 서비스를 멈추는 것이다.

+0

그래요 매니페스트 파일에 서비스를 선언 <서비스를 넣어주세요 –

+0

안녕하세요 서비스 클래스 내에서 비동기 작업을 실행하는 데 문제가 있습니다. 여기 하나의 비동기 작업이 서비스 클래스에서 캐링입니다. –

+0

업데이트 된 답변보기 –

-1
lv.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 
     String item=pat_id[arg2]; 
     CommonClass.item=item; 
     System.out.println("item 1" +CommonClass.item); 

      Intent intent = new Intent(getApplicationContext(),LocationService.class); 
      startService(intent); 
     } 
    }); 

예를 들어,이

27

전체 주소 매니페스트 파일에 서비스를 선언하십시오 을 시도해보십시오 -

<service android:enabled="true" android:name="com.example.LocationService"></service> 
+0

정답이어야하며 복사 후 Manifest에 추가하는 것을 잊었습니다 + 다른 프로젝트에서 붙이지 만 대답은 받아 들일 수 없다. – Gonzalo

관련 문제