티스토리 뷰

 많은 경우는 아니지만 작업을 하다보면 전원 버튼 이벤트를 처리해줘야 하는경우가 있습니다. (전원 버튼을 눌러 screen off 될 시 작업을 잠시 중단했다 다시 켜지면 작업을 계속하는등) 이번에 이러한 전원 버튼이 꺼졌을 경우를 처리할 경우가 생겨 작성해 보았습니다. 개요는 다음과 같습니다.

 1) Screen Off의 Intent를 잡는다.

 2) Intent의 Action을 살펴 Screen Off이면 이벤트를 진행한다.

위의 과정을 위해서 우선 다음과 같은 선언을 하였습니다.


1
2
private BroadcastReceiver screenOffReceiver;
private IntentFilter screenFilter;
cs


 Intent의 Action을 Receive 할 수 있는 BroadcastReceiver와 Intent를 걸러주는 Intent Filter를 선언하였습니다. 저는 해당 Activity에서만 사용할 생각이라 private으로 선언하였습니다. 그럼 Intent를 걸려보겠습니다.(앞으로의 과정은 onCreate() 안에서 진행됩니다.


1
2
screenFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
registerReceiver(screenOffReceiver, screenFilter);
cs


 Intent.ACTION_SCREEN_OFF 이벤트를 filtering 한다고 한뒤 해당 Intent가 잡혔을때 받을 수 있도록 BroadcastReceiver를 등록해 주었습니다.


1
2
3
4
5
6
7
8
9
screenOffReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals("android.intent.action.SCREEN_OFF")) {
            stopAlarm();
            finish();
            }
    }
};
cs


 Intent가 잡히면 BroadcastReceiver에서 해당 Intent의 Action이 "android.intent.action.SCREEN_OFF"인지 확인합니다. 만약 Screen on 을 받고 싶다면 OFF를 ON으로 바꿔주시면 됩니다.(위의 Filter도)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday