2012-08-14 4 views
0

별도의 서비스 파일을 만들지 않고도 모든 버튼, 텍스트 뷰, 함수 등을 사용할 수있는 서비스 내에서 서비스를 만들 수 있습니까? 이런 식으로 시도했지만 서비스를 시작하지 않았습니다. 기본적으로, 나는 하나의 액티비티로 실행중인 앱을 가지고 있으며, 백그라운드에서 실행되기를 원하지만, 코드를 고치기 위해 너무 많은 작업을하고 싶지는 않습니다.android의 활동 내에서 서비스 사용

편집 : 이것은 서비스 대신 활동을 수행하는 중에 발생하는 logcat 오류 메시지입니다. 이 같은

08-14 10:00:25.076: V/Tagging(3122): On Create 
08-14 10:00:25.076: V/Tagging(3122): Service Starting 
08-14 10:00:25.086: D/ActivityManager(1580): isSketcherDisabledInCurrentTask():false, ActivityRecord{4109a2a0 com.jimmyc.summer.wificollection/.WiFiLocationApp} 
08-14 10:00:25.086: W/ActivityManager(1580): Unable to start service Intent { cmp=com.jimmyc.summer.wificollection/.WiFiLocationApp$MyService }: not found 

뭔가 ..

public class mainActivity extends Activity { 

    onCreate(){ 
    Intent intent = new Intent(this, HelloService.class); 
    startService(intent); 
    } 

    public class HelloService extends Service { 

    onCreate(){ 
    } 

    onStartCommand(){ 
    } 

    } 

} 

답변

2

예 가능합니다.

activity에 의해 실행 된 코드를 service으로 옮기고 onCreate에서했던 것처럼 서비스를 호출하면됩니다.

서비스는 안드로이드 매니페스트에서 서비스를 확장하는 별도의 클래스에 있어야합니다. 또한이 서비스는 매니페스트에 언급되어야합니다.

또한 이러한 방식으로 서비스에 단추를 추가하여 서비스에서 기능을 실행할 수 있습니다. 따라서 백그라운드에서 실행중인 서비스와 서비스를 제어하는 ​​활동의 UI를 가질 수 있습니다.

+0

그래서 서비스를 서비스로 옮기려고했는데 서비스가 작동하지 않아 서비스 내부로 이동해야합니다. 이것은 가독성을 위해 대단히 비효율적이지만, 나는 단지 빠른 것을 필요로합니다. – jimmyC

+0

위에서 작성한 방식이 아닙니다. 모든 실제 작업 코드는 서비스 내부에 있습니다. 그리고 활동은 단지 서비스를 호출합니다. –

+0

나는 이것을 이미 시도했다고 생각한다. HelloService.class를 사용하는 것과 관련이 있다고 생각한다. 그리고 이것은 별도의 파일로 만들어야합니까? – jimmyC

2

예,이 가능합니다. 매니페스트에 서비스를 등록하기 만하면됩니다.

0

트릭을 수행 한 클래스에 활동을 바인딩하는 결과가 발생했습니다.