안드로이드 Service 처음부터 실행시키는 법좀 알려주세요
현재 breadcast receiver에서 특정 메시지를 받으면 서비스가 실행되게 했는데,,
프로그램이 기기에 깔리면서 바로 서비스를 start시키는 방법이 없을까요??
앗 그런데
매니페스트 리시버에 <action android:name="android.intent.action.BOOT_COMPLETED" /> 등록하고,
리시버 클래스의 onReceive() 메소드에서
if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
Intent start_intent = new Intent(context, Service_Test_Service.class);
start_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(start_intent);
이렇게 해주었는데,,,아무 반응이 없네요,, 혹시 왜그런지 아시나요ㅜ
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 퍼미션도 주었습니다만 ㅜㅜ
AndroidManifest.xml파일에서 이미 Intent Filter를 해주었으니까 if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {을 빼주어야 합니다. 그리고 서비스는 Foreground이거나 Notification 등록 안해주면 자체적으로 보여지는 것은 없습니다.
아, 그리고 이런 방법은 어떨까요? BroadcastReceiver가 부팅후 실행되게 만들지 말고 바로 Service에 action을 추가해 주면 쉬울 것 같은데..




<action android:name="android.intent.action.BOOT_COMPLETED" /> 리시버에 등록하시고 해당액션 취하시면 됩니다. ^^