티스토리 뷰
개발을 진행하다보면 부팅시에 자동으로 앱 실행을 해야 하는 경우가 있습니다. 여기서 앱실행은 대부분 서비스(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
- 티스토리 초대장
- 래디어 구조
- 라이젠
- 배달 지연
- JSON PASER
- 단면폭
- 1800X
- 투표소
- 민주당 대선 후보
- unbound prefix
- 포아너
- ONLINE JSON
- 한글패치
- 예약메일 전송
- Looper.prepare()
- 림의 외경
- 국기 다는 시간
- 블로그 개설
- 7700K
- 19대 선거
- GPU 출시
- 한글 패치
- 사제 쿨러
- 하이엔드 그래픽카드
- 테일즈 오브 베르세리아
- 다렉
- 1800TI
- GPU 출시가격
- 오픈베타
- 초대장
최근에 올라온 글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
공지사항
반응형