배경 (기본적으로 프록시 서버)에서 계속 실행되는 service
인 유일한 구성 요소를 만드는 중이지만 해당 서비스를 시작하는 방법을 찾을 수 없습니다. 응용 프로그램은 UI 또는 사용자 상호 작용을 가질 수 없으므로 Activity를 사용하지 않습니다.
Broadcast receiver
은 BOOT 방송을들을 수 있지만 설치되었을 때 처음 서비스를 시작하려면 어떻게해야합니까? 앱을 설치 한 후 내가들을 수있는 방송이 있습니다. TIME_TICK 일 수도 있지만 생각한 활동을 통해 등록해야합니다.서비스 전용 Android 앱을 시작하는 방법
답변
불행히도 지금은 응용 프로그램이 설치된 후 브로드 캐스트 이벤트를 수신 할 수있는 확실한 방법이 없습니다. ACTION_PACKAGE_ADDED 인 텐트는 새로 설치된 패키지로 브로드 캐스트하지 않습니다.
ACTION_BOOT_COMPLETED 이벤트를 받으려면 방송 수신기 클래스와 서비스가 있어야합니다. 또한 해당 브로드 캐스트 리시버에 걸려는 ACTION_USER_PRESENT 의도를 추가하는 것이 좋습니다. Android 1.5 (minSDK = 3)가 필요합니다. 사용자가 휴대 전화를 잠금 해제 할 때마다 브로드 캐스트 수신기가 호출됩니다. 자동으로 쉽게 종료하지 않고 서비스를 계속 실행하기 위해 수행 할 수있는 마지막 작업은 서비스에서 Service.setForeground()으로 전화하는 것입니다. Android가 서비스를 중지하지 않아야 함을 알리려면이 서비스가 주로 mp3 플레이어 유형에 추가되어야합니다 서비스를 계속 실행해야하지만 모든 서비스에서 사용할 수있는 서비스
매니페스트의 boot_complete 및 user_present 이벤트에 대한 적절한 권한을 추가했는지 확인하십시오.
다음은 이벤트의 브로드 캐스트 리시버로 사용할 수있는 간단한 클래스입니다.
package com.snctln.util.WeatherStatus;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class WeatherStatusServiceReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if(intent.getAction() != null)
{
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||
intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
context.startService(new Intent(context, WeatherStatusService.class));
}
}
}
};
행운을 빈다.
좋은 조언. Service.setForeground()에 관한 한 가지 : Android 2.0 이상에서는 더 이상 작동하지 않습니다. 모든 "수명이 긴"서비스는 이제 알림 영역에서 실행 중일 때 지속적으로 알림을 받아야합니다. 예 : http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.html –
ACTION_USER_PRESENT는 멋진 팁입니다. 나는 여러 해 동안 내 봉사를 지키려고 애 쓰고 있었고 방금 해결했습니다. – defrex
글쎄, 안드로이드 4.0.x에서 더 이상 작동하지 않는 것 같습니다 ... – ubuntudroid
Service.onStartCommand
에서 반환 START_STICKY
안드로이드 내가 같은 문제에 대해 연구하고 있습니다
START_STICKY는 Android 2.0 이상에서만 유효합니다. – cow
하지만 서비스가 연속성을 얻으려면 적어도 한 번 이상 실행해야합니까? –
서비스가 다시 시작됩니다. 여기 내가 찾은 무엇인가입니다 : http://kfb-android.blogspot.de/2009/04/registering-for-timetick-after-reboot.html
은 간단한 작은 데모는 BroadcatReceiver
과 Service
사이에 탁구의 조금을 재생하여 솔루션을 보여줍니다. 수신기는 매니페스트에 등록하여 ACTION_BOOT_COMPLETED
을 수신하면 부팅 할 때 시작되도록 등록됩니다. 수신 ACTION_BOOT_COMPLETED
을 수신하면 서비스가 시작됩니다. Service
은 차례로 BroadcastReceiver
을 등록하고 ACTION_TIME_TICK
을 등록합니다.
앱 로직은 BroadcastReceiver
에 구현됩니다.
- 1. Android 태블릿 전용 턴키 앱을 만드는 방법
- 2. Android - 패키지 이름으로 타사 앱을 시작하는 방법?
- 3. Android에서 프로비저닝 앱을 시작하는 방법
- 4. Android Maven 플러그인 - 앱을 배포 한 후 자동으로 시작하는 방법
- 5. URL이있는 xcode에서 디버그 모드로 앱을 시작하는 방법
- 6. 백그라운드에서 실행되는 Android 앱을 만드는 방법, 서비스 예는 무엇입니까?
- 7. Android : eMail 연락처를 시작하는 방법?
- 8. 설치시 android 서비스를 시작하는 방법
- 9. Android 블루투스 - 페어링을 시작하는 방법
- 10. Android 애플리케이션을 자동 시작하는 방법?
- 11. Android : 백그라운드에서 활동을 시작하는 방법?
- 12. Android - 다른 앱을 실행하는 방법
- 13. 안드로이드 마켓에서 앱을 다운로드 전용
- 14. 앱을 시작하는 동안 AVAudioPlayer가 닫혔습니다.
- 15. Windows 서비스 내에서 프로세스를 시작하는 방법
- 16. Windows 서비스 내부에서 시작하는 방법을 결정하는 방법?
- 17. 필요한 서비스와 앱을 자동으로 시작하는 방법은 무엇입니까?
- 18. android 2.1에서 QuickContact 작업을 시작하는 방법
- 19. Android : 서비스에서 AIDL 바인딩 해제를 시작하는 방법?
- 20. Android 시작 서비스/애플리케이션
- 21. GPS를 항상 사용하는 Android 서비스
- 22. 아이폰에서 앱을 시작하거나 코드에서 앱을 시작하는 알람 만들기
- 23. 검색 결과에서 Android 앱을 얻는 방법
- 24. android- 앱에서 앱을 Android에서 실행하는 방법
- 25. Android : 설정과 같은 핵심 앱을 디버깅하는 방법
- 26. 주소 표시 줄에 "myapp : //"를 입력하면 Android 브라우저에서 앱을 시작하는 방법
- 27. iOS에서 프로그래밍 방식으로 iPhone 앱을 다시 시작하는 방법
- 28. 서비스 활동을 시작하는 방법은 무엇입니까?
- 29. iPad 전용 앱을 Univeral 앱으로 변환하려면 어떻게해야합니까?
- 30. Android 앱을 다시 배포하는 방법을 알고 계십니까?
본인 스스로 시도하지는 않았지만 Application 개체에서 서비스를 시작할 수 있습니까? – phreed
나는 그것이 작동한다고 생각한다. http://android-codes-examples.blogspot.com/2011/11/running-service-in-background-on.html – Android