안드로이드 개발 질문/답변
(글 수 45,052)
noti.defaults |= Notification.DEFAULT_SOUND;
noti.flags |= Notification.FLAG_INSISTENT;
위에처럼 하지 않고 아래처럼 대입연산자를 사용해도 똑같은 결과가 있는데요..
noti.defaults = Notification.DEFAULT_SOUND;
noti.flags|= Notification.FLAG_INSISTENT;
|= ?
2011.11.23 13:32:34
그런 뜻은 아닙니다..;;;; || 는 OR 논리연산 이고, | 는 OR 비트연산 입니다. (둘 다 자바에서 사용되고 있습니다.)
|| 은 알고 계신거 같으니 넘어가고, 예를 들어 2개의 2진수 1010(2), 1011(2) 를 | 연산하면 결과는 1011 입니다.
그러니 noti.defaults에 값이 있다면, 기존값 + Notification.DEFAULT_SOUND 이 될 것입니다.
Notification를 살펴보니 DEFAULT_LIGHTS(상수값:4), DEFAULT_SOUND(상수값:1), DEFAULT_VIBRATE(상수값:2) 등이 있는데,
noti.defaults = Notification.DEFAULT_LIGHTS;
noti.defaults |= Notification.DEFAULT_SOUND;
를 하면 noti.defaults는 5가 설정됩니다.
댓글 다시 확인 안했으면 큰일날 뻔했네요 ..;;;
a |= b 는, a = a | b 를 줄인 것입니다.
noti.defaults 에 값이 들어있다면,
noti.defaults |= Notification.DEFAULT_SOUND; 과 noti.defaults = Notification.DEFAULT_SOUND;의 결과는 다르겠죠.