안드로이드에서 여러 서비스 인스턴스를 가질 수 있습니까? 특정 시간에 전화를 끊을 수있는 서비스가 필요하며 특정 시간에 진동 모드로 전화를 걸기 위해 해당 서비스를 다시 사용하고 싶습니다. 기본적으로 서비스를 여러 번 실행할 수 있다면 진동 모드에서 전화를 설정하기 위해 다른 서비스를 만들 필요가 없습니다. 또한 여러 인스턴스를 실행할 수 있다면 중지 방법을 설명하십시오. 모든 코드 힌트가 도움이 될 것입니다.안드로이드에서 여러 서비스 인스턴스를 갖는 방법
8
A
답변
25
Android의 서비스 인스턴스를 여러 개 가질 수 있습니까?
번호 당신은 Service
의 여러 하위 클래스를 가질 수 있지만, Service
의 특정 서브 클래스는 어떤 주어진 순간에 정확히 0 또는 1 인스턴스를해야합니다.
특정 시간에 전화를 끊을 수있는 서비스가 필요하며 특정 시간에 진동 모드로 전화를 걸기 위해 해당 서비스를 다시 사용하고 싶습니다.
이러한 서비스에는 서비스를 사용하지 않아야합니다. AlarmManager
및 BroadcastReceiver
을 사용하십시오.
2
나는 그런 목적으로 서비스를 사용할 수 있다고 생각하지 않습니다. 서비스는 몇 가지 기능을 제공해야하지만 여러 가지 목적을위한 것이 아니라 하나의 의미 만 제공해야합니다. 코드를 간단하고 명확하게 유지하기 위해 추가 서비스를 만드는 것이 좋습니다.
2
질문에 이상이 없습니다. 같은 서비스를 여러 인스턴스로 실행하고 한 번에 여러 가지 작업을 수행하려는 것 같습니다. 그러나 귀하의 질문은 근본적으로 서비스가 오랜 시간에 일을해서는 안된다는 사실에 달려 있습니다. 대신, 의도는 그들이 의도를 받고, 아마도 스레드 또는 무언가를 생성 한 다음 매달리는 것을 중지해야한다는 것입니다. 서비스는 여전히 메인 스레드에서 실행되며, 백그라운드 작업이 아니므로 어쨌든 장기간 수행하지 않아야합니다. 당신이 바라는 것은 IntentService로서, 일어날 일을 제어하는 인 텐트를 사용하여 활동과 조정합니다.
관련 문제
- 1. 여러 Doxyfiles를 갖는 방법?
- 2. Python의 staticmethod에서 자체 인스턴스를 갖는 방법
- 3. 안드로이드에서 Fragment 인스턴스를 올바르게 작성하는 방법
- 4. 여러 인스턴스를 유지하는 방법
- 5. 스레드 당 여러 개의 NSManagedObjectContext 인스턴스를 갖는 것이 좋습니까?
- 6. Android - 활동의 여러 인스턴스를 만드는 방법?
- 7. 모델의 인스턴스를 나열하고 동일한보기에서 인스턴스를 생성하는 양식을 갖는 방법은 무엇입니까?
- 8. ExtJS : 여러 뿌리가있는 TreePanel을 갖는 방법?
- 9. Windsor Castle에서 서비스 인스턴스를 얻는 방법
- 10. 안드로이드에서 여러 파일을 선택하는 방법
- 11. 동일한 델파이 서비스 애플리케이션의 인스턴스를 여러 개 설치할 수 있습니까?
- 12. 안드로이드에서 하나의 활동으로 두 개의 레이아웃 XML 파일을 갖는 방법
- 13. 컨트롤러의 여러 인스턴스를 표시하십시오.
- 14. 안드로이드에서 서비스 클래스의 페이스 북을 인증하는 방법
- 15. 안드로이드에서 서비스 제공 업체 알림을 사용하는 방법?
- 16. 작업자의 여러 인스턴스를 관리하기위한 아키텍처?
- 17. 안드로이드에서 HttpRequest를 취소하는 방법
- 18. 테스트에서 응용 프로그램의 여러 인스턴스를 시작하는 방법
- 19. JBOSS - 구성의 여러 인스턴스를 시작하지 못하도록하는 방법
- 20. 한 필드에 여러 입력 인스턴스를 처리하는 방법
- 21. 서비스에서 시작하는 여러 활동 인스턴스를 방지하는 방법
- 22. 클라우드에 애플리케이션 인스턴스를 여러 개 만드는 방법
- 23. 여러 인스턴스를 업데이트하는 방법 asp.net 웹 사이트
- 24. 여러 속성을 갖는 하나의 엔티티
- 25. 새로운 서비스 인스턴스를 반환하는 Unity
- 26. 여러 인스턴스를 방지하기 위해보기 제거
- 27. 여러 인스턴스를 지원하는 설치 프로젝트를 만드는 방법 (여러 번 설치)?
- 28. 안드로이드에서 테스트 환경을 프로그래밍 방식으로 파악하는 방법
- 29. 안드로이드에서 GridView 안에 여러 리스너를 처리하는 방법
- 30. 안드로이드에서 여러 작업 사이에 지연을 두는 방법
감사합니다. AlarmManager를 사용하여 일정 시간 간격으로 서비스를 시작합니다. BroadcastReceiver를 이해하고 AlarmManager를 사용하여이를 사용하는 방법을 알려주십시오. –
@SumitSahoo :'getService()'를 호출하여'PendingIntent'를 생성하는 대신'getBroadcast()'를 호출하십시오. 그리고 비즈니스 논리가 '서비스'에있는 대신 BroadcastReceiver (보통 요소를 통해 매니페스트에 등록됨)에 있습니다. –
CommonsWare