티스토리 뷰
개발을 진행하다보면 부팅시에 자동으로 앱 실행을 해야 하는 경우가 있습니다. 여기서 앱실행은 대부분 서비스(service)실행을 의미 합니다. 카카오톡과 매시저앱등에서 주로 사용 하며 지속적으로 백그라운드로 돌면서 정해진 역활을 수행 해야 하는데, 부팅이후이도 해당 서비스를 돌려야 하기 때문입니다.
안드로이드에서는 이렇게 부팅과 동시에 실행하는 경우에 사용 할 수 있는 방법을 제공 해주고 있습니다. 바로 "BOOT_COMPLETED"라는 Broadcast를 이용한 방법입니다.
안드로이드 OS에서는 부팅이 완료되면 "BOOT_COMPLETED" Broadcast를 전송 해줍니다. 앱에서는 BroadcastReceiver로 해당 Broadcast를 등록한 후 해당 Broadcast가 들어오면 이후 정해진 동작을 수행하도록 코딩을 해주면 됩니다.
BroadcastReceiver 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootReceiver extends BroadcastReceiver { // BroadcastReceiver를 상속하여 처리 해줍니다. @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub // 전달 받은 Broadcast의 값을 가져오기 // androidmanifest.xml에 정의한 인텐트 필터를 받아 올 수 있습니다. String action = intent.getAction(); // 전달된 값이 '부팅완료' 인 경우에만 동작 하도록 조건문을 설정 해줍니다. if (action.equals("android.intent.action.BOOT_COMPLETED")) { // TODO // 부팅 이후 처리해야 코드 작성 // Ex.서비스 호출, 특정 액티비티 호출등등 } } } | cs |
AndroidManifest.xml
(11, 27~36 라인처럼 추가 해주시면 됩니다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.kanzler.bootapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="16" /> <!-- 부팅을 확인 할수 있는 퍼미션 등록 --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".BootReceiver" android:enabled="true" android:exported="false" android:label="BOOTReceiver"> <intent-filter > <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> </application> </manifest> | cs |
'IT > Android' 카테고리의 다른 글
[Android]네트워크 연결/해지 Receiver 감지하기 (0) | 2017.01.24 |
---|---|
[Android]Studio 레이아웃 프리뷰에서의 한글 깨짐 해결 (0) | 2017.01.21 |
[Android]지도(map) 이용시 "CameraUpdateFactory is not initialized"에러 해결방법 (0) | 2017.01.10 |
[Android]현재 실행중인 서비스(service) 및 프로세스(process) 리스트 가져오기 (0) | 2017.01.05 |
[Android]웹뷰(webview)에서 제목(title)가져오기 (0) | 2016.12.31 |
댓글
TAG
- 한글패치
- 배달 지연
- Looper.prepare()
- 라이젠
- 국기 다는 시간
- 래디어 구조
- 1800X
- 초대장
- 블로그 개설
- 단면폭
- 19대 선거
- 예약메일 전송
- 오픈베타
- 다렉
- GPU 출시가격
- GPU 출시
- unbound prefix
- 민주당 대선 후보
- 투표소
- 사제 쿨러
- 1800TI
- 림의 외경
- JSON PASER
- 테일즈 오브 베르세리아
- 하이엔드 그래픽카드
- ONLINE JSON
- 7700K
- 포아너
- 한글 패치
- 티스토리 초대장
최근에 올라온 글
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
공지사항