'android 개발'에 해당되는 글 1건

안드로이드 앱 개발 중 꼭 한번 정도씩은 필요한 기능 중 한가지가 바로 내 폰이 부팅 되는 시점에 내가 만든 앱을 실행 시키는 것입니다. 


Android 앱의 Life Cycle 을 아시는 개발자라면 잘 아시겠지만 내가 만든 앱이 동작을 하기 위해서는 사용자가 직접 실행을 시켜 줘야만 합니다. 

하지만 경우에 따라서는 사용자 승인 하에 앱이 단 한번이라도 실행 되게 되면 그 이후에는 사용자가 신경 쓰지 않아도 단말이 재부팅 되더라도 실행 되어야 하는 경우가 있습니다. 


예를 들자면 헬스 보조 앱이나 알람 같은 경우가 있습니다.


이와 같은 경우를 위해 Android 폰 부팅 시 내가 만들 App을 실행 시키는 방법에 대한 내용을 정리 합니다. 



1. 우선 BroadcastReceiver 를 상속 받는 MyReceiver 클라스를 하나 생성하여 모바일 단말의 부팅이 완료된 경우의 액션을 정의 합니다. 


여기서 android.intent.action.BOOT_COMPLETED 메세지는 모바일 단말의 부팅이 완료 되었다는 메세지 이며 이 메세지를 받았을 경우 MainActivity 를 실행 시켜 주는 기능을 합니다. 


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

public class MyReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals("android.intent.action.BOOT_COMPLETED")){
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}

}


2. AndroidManifest.xml 에 RECEIVE_BOOT_COMPLETED 권한을 추가 합니다.

 receiver 에는 생성한 클라스명인 MyReceiver 를 등록 하고, intent-filter 에 우리가 사용할 BOOT_COMPLETED 메세지를 추가 해줍니다. 

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>


3. MainActivity 클라스에 본인이 원하는 동작을 구현하고 앱을 빌드하면 개발 완료입니다. 



이제 앱을 실행 하면 리시버가 등록이 되고 앱을 종료 하더라도 단말이 재부팅 되면 broadcast receiver 가 BOOT_COMPLETED 메세지를 받아 내 app 의 MainActivity 를 실행 하게 되면 정의한 동작을 수행하게 됩니다. 



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,