개발신의 한타

[안드로이드] 부팅시 자동실행 본문

안드로이드/개발소스

[안드로이드] 부팅시 자동실행

슈퍼맨28호 2014. 1. 21. 11:15

 안드로이드 :: 부팅시 자동실행

특정 서비스나 엑티비티를 상시 실행시켜야 할 경우, 노티피케이션으로 표시하고 서비스를 점유하도록 한다.
그러나 전원이 꺼지면 재실행을 시켜줘야 하는데, 필수적인 서비스나 성실한 사용자가 아니면, 이것을 사용자에게 기대하기는 어려운게 사실이다. 따라서 개발자는 어플리케이션이 부팅과 동시에 실행할수 있는 환경을 마련해 주어야 한다.

방법은 안드로이드 기기가 부팅되는 과정을 캐치하여, 브로드캐스팅 함으로써, 사용자의 리시버가 이것을 받아들여 수행하도록 하는것이다.


기기 부팅 완료
    ▷ 브로드캐스트 발생 (RECEIVE_BOOT_COMPLETED)
        ▷ 사용자 BROADCAST RECEIVER의 브로드캐스트 RECEIVE
            ▷ 사용자 지정 내용 실행

 

ANDROID MANIFEST 설정

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

...
<receiver android:name="org.devgiant.project.smartwindow.wakeonReceiver"
       android:label="@string/app_name" android:enabled="true"
       android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
       <intent-filter>
              <action android:name="android.intent.action.BOOT_COMPLETED" />
              <category android:name="android.intent.category.LAUNCHER" />
       </intent-filter>
</receiver>

리시버는 당연히 ACTIVITY와 같은 라인에 설정되어야 한다.

 

RECEIVER 작성

package org.devgiant.test.packagename;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class wakeonReceiver extends BroadcastReceiver {
       @Override
       public void onReceive(Context context, Intent intent) {
              // 사용자가 실행하고 싶은 내용.
              // startService, startActivity와 같은 것들을 사용할수 있을 것이다.
       }
}

간단히 리시버를 작성하고, 사용자가 수행하고 싶은 내용을 넣으면, 간단히 부팅시에 수행해야할 일들을 지정할수 있다.