일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- xe
- php 시큐어코딩
- UML
- dovecot
- 안드로이드 푸쉬
- C#
- FCM
- PHP
- WebView
- 안드로이드
- not working
- html5
- 자동 생성
- 안드로이드 푸시
- roundcube
- 폼메일
- chart.js
- soundpool
- mysql
- 우분투
- 안드로이드 gcm
- curl
- 설치
- php 취약점
- Mail Server
- Android
- android 효과음
- 자바스크립트
- C# IO
- javascript
- Today
- Total
그러냐
부팅시 서비스(Service) 실행하기 본문
출처 : http://ccdev.tistory.com/27
[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에 등록해줍니다.
<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를 가진 놈만 호출할 수 있다는 뜻입니다~
<ins class="adsbygoogle" style="width: 728px; height: 90px; display: inline-block;" data-adsbygoogle-status="done" data-ad-client="ca-pub-2280832699626440" data-ad-slot="5266823817"><ins id="aswift_2_anchor" style="margin: 0px; padding: 0px; border: currentColor; border-image: none; width: 728px; height: 90px; display: block; visibility: visible; position: relative; background-color: transparent;"><iframe name="aswift_2" width="728" height="90" id="aswift_2" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" vspace="0" hspace="0" allowfullscreen="true" style="left: 0px; top: 0px;" allowtransparency="true"></iframe></ins></ins> |
또한 중요한점 ! 부팅시 서비스 시작하는 기능을 사용하려면 권한(permission)이 필요합니다. 따라서 Manifest.xml에 아래의 권한을 추가해줘야 합니다.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
네 요기까지~ 부팅시 서비스 시작하는 방법에대해 알아보았습니다! 다음시간에는! 앱이 업데이트 되었을 때도 서비스가 종료된답니다 ㅠㅠ 그래서 앱이 업데이트 되었을 때 서비스 실행하는 방법을 알아도록 하겠습니다~ 궁금한점은 댓글 달아주세요!
'android' 카테고리의 다른 글
Android KitKat에서의 변화 (0) | 2016.01.28 |
---|---|
Broadcast Receiver에 대해서 (펌) (0) | 2016.01.28 |
안드로이드 service에서 포스트로 데이터 주고 받기 httppost 통신 (0) | 2016.01.28 |
안드로이드 service에서 alert dialog 띄우기 (0) | 2016.01.28 |
안드로이드 블루투스 신호강도 측정하기 (0) | 2016.01.28 |