디바이스 재부팅했을때 앱이 켜지게 할수는 없을까요?

제가 샘플 코드를 찾긴했는데 이게 너무 오래되서 더이상 해당 클래스들이 deprecated됐어요. 그래서 이제는 안되나 싶어서 질문드려요.

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    가능합니다. 안드로이드 매니페스트 파일에서 permission을 주고 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <service android:name=".MyService" android:label="My Service">
        <intent-filter>
            <action android:name="com.myapp.MyService" />
        </intent-filter>
    </service>
    
    <receiver
        android:name=".receiver.StartMyServiceAtBootReceiver"
        android:label="StartMyServiceAtBootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
    

    이런식으로 BOOT_COMPLETED를 받을수있게 리시버를 등록해줍니다.

    public class StartMyServiceAtBootReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
                Intent serviceIntent = new Intent(context, MyService.class);
                context.startService(serviceIntent);
            }
        }
    }
    

    그리고 BOOT_COMPLETED를 받아서 처리하는 리시버 클래스를 정의해줍니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.