Android Service
을 설명하십시오. Activity
과 어떻게 다른가요? 그것은 전경/배경에서 실행되는 것과 같은 응용 프로그램 상태에 의존합니까?Android 서비스
답변
을 확인 읽기 Android Developer's SDK reference for Service :
서비스가 사용자와 상호 작용하지 않으면 서 더 긴 실행 작업을 수행하거나 응용 프로그램의 욕망을 나타내는 응용 프로그램 구성 요소입니다 또는 다른 응용 프로그램이 사용할 수있는 기능을 제공 할 수 있습니다.
주의하는 것이 매우 중요합니다
그들의 호스팅 프로세스의 메인 쓰레드에서 실행되는 다른 응용 프로그램 객체 등의 서비스. 즉, 서비스가 CPU 집중적 인 작업 (예 : MP3 재생) 또는 차단 (예 : 네트워킹) 작업을 수행하는 경우 해당 작업을 수행 할 자체 스레드를 생성해야합니다.
이
최상의 사용자가 직접보고와 상호 작용하는 무언가로 이해 활동에 대조적이다 (a UI.) 전술 한 바와 같이서비스는 더 이상 실행 작업에 사용될 수있는 포 그라운드 활동이 없어도 계속 진행되지만 "배경"상태 인 경우 안드로이드의 수명주기에 의해 결국 죽을 수 있습니다. 서비스가 중지되고 다시 시작되지 않고 단일 인스턴스로 계속 실행되어야하는 경우 서비스 onCreate
에 startForeground(int id, Notification notification)을 입력하고 서비스 onDestroy
방법으로 stopForeground(boolean removeNotification)을 입력하는 것이 좋습니다.
예를 들어, 나는 야간에 가속도계 데이터를 기록하기 위해 foreground Service
을 사용하는 앱을 가지고 있으며, 안드로이드 기기는 사용자의 신체 옆에 있습니다. 이 활성화 될 필요는 없습니다 만, 나는 또한 그것은 또한 Activity
내부 BroadcastReceiver
에 엑스트라로 가속도계 데이터로 Intent
을 방송해야한다는 Service
을 알려주는 Service
내부 BroadcastReceiver
에 Intent
방송 Activity
있습니다.
코드 : SleepActivity SleepAccelerometerService
행운을 당신이 더 이상 정보가 필요하면 알려주세요!
a 서비스는 활동과 유사하지만 GUI가없는 컨텍스트입니다.
중요 : 서비스가 새 스레드에서 실행되지 않습니다!
약 Service도가에서 How to always run a service in the background?
- 1. Android 서비스
- 2. Android 서비스
- 3. Android - 서비스 바인딩
- 4. Android 서비스 취소 oncreate
- 5. Android - 서비스 변수 액세스
- 6. Android 블루투스 서비스 이름
- 7. Android : 커뮤니케이션 활동/서비스
- 8. MediaPlayer를 제어하는 Android 서비스
- 9. Android 서비스 질문
- 10. Android 웹 서비스 구현
- 11. Android : 서비스 시작 활동
- 12. 라이브러리의 Android 서비스
- 13. Android 서비스 중단
- 14. Android : AsyncTask vs 서비스
- 15. Android 전화 WCF 서비스
- 16. Android 포 그라운드 서비스
- 17. Android 마켓 라이선스 서비스
- 18. 알림이있는 Android 서비스
- 19. 백그라운드에서 실행중인 Android 서비스
- 20. Android 서비스 + BroadcastReceiver, PhoneStateListener
- 21. Android 백그라운드 서비스 문제
- 22. Android 블루투스 서비스 내
- 23. Android : alarmManager 및 서비스
- 24. Android 서비스 메모리 사용량
- 25. Android 원격 서비스 쿼리
- 26. Android 서비스 다시 시작
- 27. Android Ksoap2 웹 서비스
- 28. android 서비스 in
- 29. Android 시작 서비스/애플리케이션
- 30. Android 웹 서비스
두 번째 링크 "SleepAccelerometerService"가 고장났습니다. – gonzobrains
잠자기 상태가 되어도 서비스를 계속 실행하려면 WakeLock을 사용해야합니까? – gonzobrains
장기 실행 및 CPU 집약적 인 작업을 수행 할 때마다 서비스가 기본적으로 실행되어 UI 스레드에서 실행되므로 새 스레드에서 서비스 코드를 실행하려고 할 수 있습니다. 대부분의 요구에 IntentService를 사용할 수 있습니다. HandlerThread 및 ThreadPoolExecutor는보다 유연하지만보다 복잡한 대안입니다. –