[Android] 부팅시 서비스(Service) 재실행하기 (항상 실행)

 

[Android] 부팅시 서비스(Service) 실행하기

 

지난 시간까지 잠금화면 개발시 죽지 않는 서비스를 만드는 방법에 대해 알아보았습니다. 이번 시간에는 TaskKiller에 죽지 않는 서비스에 더해서 기기 전원이 꺼졌다가 켜졌을 때 자동으로 서비스를 실행하는 방법에 대해 알아보겠습니다. 만약 전원이 꺼졌다 켜졌을 때 우리가 만든 잠금화면 서비스가 실행되지 않는다면 .. 잠금화면으로서 10% 부족할 것입니다. 다시 앱을 켜야 실행이 될테니까요. 사용자들은 뭐야 .. 폰 껏다키니까 안되네? 라며 떠나겠죠 .. ㅜ 그럼 이제~ 부팅시 서비스를 실행시키는 방법에대해 알아보겠습니다.

 

우선은 부팅시 시스템이 broadcast 해주는 intent를 받아낼 BroadcastReceiver를 작성합니다.

 

public class BootReceiver extends BroadcastReceiver{

 

@Override

public void onReceive(Context context, Intent intent) {

        

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {

Intent i = new Intent(context, ScreenService.class);

context.startService(i);

}

}    

}

 

시스템이 부팅되면서 안드로이드 os에서 ACTION_BOOT_COMPLETED 요녀석을 broadcast 해줍니다. 그것을 받아서 우리가 만들어둔 서비스를 실행하면 되는 것입니다. 요것만 알고 있으면 아주 쉽게 해결되는데 말이죠~ 이렇게 BroadcastReceiver를 만들고 Manifest.xml에 등록해줍니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

<receiver

android:name=".BootReceiver"

android:enabled="true"

android:exported="false" >

<intent-filter>

<action android:name="android.intent.action.BOOT_COMPLETED" />

</intent-filter>

</receiver>

 

요렇게 추가해주면 "android.intent.action.BOOT_COMPLETED" 이 부분이 곧 Intent.ACTION_BOOT_COMPLETED 이라는 걸 다들 아시겠죠 ! android:enabled="true" 이 부분은 시스템이 알아서 BootReceiver를 실행한다는 뜻입니다. android:exported="false" 이 부분은 외부 어플리케이션에서는 사용할 수 없으며 같은 앱 또는 같은 UserId를 가진 놈만 호출할 수 있다는 뜻입니다~

 

또한 중요한점 ! 부팅시 서비스 시작하는 기능을 사용하려면 권한(permission)이 필요합니다. 따라서 Manifest.xml에 아래의 권한을 추가해줘야 합니다.

 

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

 

네 요기까지~ 부팅시 서비스 시작하는 방법에대해 알아보았습니다! 다음시간에는! 앱이 업데이트 되었을 때도 서비스가 종료된답니다 ㅠㅠ 그래서 앱이 업데이트 되었을 때 서비스 실행하는 방법을 알아도록 하겠습니다~ 궁금한점은 댓글 달아주세요! 

 

[출처] http://ccdev.tistory.com/27

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
27 레이아웃이란 무엇일까요? 졸리운_곰 2016.04.30 238
26 안드로이드 네트워크/쓰레드 프로그래밍 예제 - HTTP file 졸리운_곰 2016.04.30 318
25 안드로이드 와이파이 연결시 준비된 코드 실행 졸리운_곰 2016.04.30 423
24 Broadcast Receiver로 문자(SMS) 수신해보자 file 졸리운_곰 2016.04.29 761
23 How do you get the Android's primary e-mail address (or a list of e-mail addresses)? 졸리운_곰 2016.04.29 221
22 안드로이드/Android 액티비티(Activity) 투명 처리 하기 file 졸리운_곰 2016.04.14 196
21 Audio Capture 졸리운_곰 2016.04.08 212
20 [안드로이드] 앱이 파일을 읽고 쓰는 위치 졸리운_곰 2016.03.24 879
19 안드로이드 네트워크 연결 상태 확인 졸리운_곰 2016.03.23 437
18 안드로이드 > 네트워크 연결 상태를 확인하는 ConnectivityManager 졸리운_곰 2016.03.23 652
17 [펌][안드로이드예제] 카메라로 찍은 사진(이미지파일)을 웹서버에 전송하는 프로그램예제 졸리운_곰 2016.03.12 2730
16 안드로이드 통화 녹음 소스 : android call recoder source file 졸리운_곰 2016.03.12 2118
15 안드로이드 앱 : 앱 개발시 코드에서 다른 앱 설치 및 제거 졸리운_곰 2016.03.09 295
14 [Android] 첨부파일 포함한 이메일 보내기 file 졸리운_곰 2016.03.05 911
13 [안드로이드 Android] 시스템 인텐트(Intent)를 이용한 전화걸기, 문자보내기, 이메일보내기 etc file 졸리운_곰 2016.03.05 1099
12 Intent를 사용한 첨부파일 이메일 보내기 file 졸리운_곰 2016.03.05 2117
11 android app gmail 보내기, 안드로이드 E-Mail 보내기 예제 따라하기 file 졸리운_곰 2016.03.05 267
10 android 실행시 class not found 졸리운_곰 2016.03.04 180
9 android 부팅과 함께 app 실행 시키기. 졸리운_곰 2016.03.02 168
» [Android] 부팅시 서비스(Service) 재실행하기 (항상 실행) 졸리운_곰 2016.03.02 347
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED