안드로이드 개발 질문/답변
(글 수 45,052)
교재를 보면 상황이 여의치 않아 상대시간으로 예제를 구현했다고만 나오고 자세히는 안나왔네요
그리고 통지 기능이 먼저 나오고 그다음에 알람이 따로 나오는데 이 둘이 다른 기능이란 건가요??
제가 구현하고자 하는건 DB에서 정수형으로 시간, 분을 받아온 다음에
해당 시간이 되면 (어플이 종료된 상태라도) Notification에 메시지가 뜨면서 진동과 소리가 나오는 기능을 구현하고자 합니다
물론 DB에서 여러 개의 항목을 받아올 수 있으니 그 항목 갯수만큼 알람이 등록되도록이요..
근데 보면 통지 기능에 진동과 소리가 나오는 기능도 있던데..
그럼 궂이 알람이 아니더라도 통지 기능에 진동과 소리를 넣고 등록하면 알람과 동일한 기능을 수행한다는 건가요?
이 둘의 기능이 왜 따로 있는지..뭐가 다른지 궁금합니다
그리고 카카오톡 처럼 Notification에 뜬 메시지를 터치하면 어플이 실행되도록 하는 방법도요
답변 부탁드립니다




에구.. 저도 어제 구현했는데..
이해하는데만 하루정도 걸린것같네요.. (머리가 나빠서 ㅠㅠ)
이해하면 구현은 2~3시간? 정도만 파면 합니다.
우선 제가 파악한 내용을 말씀드리면,
알람은 시간을 설정하면 그 시간에 알람이 울립니다.
시간이란건 몇분후, 혹은 몇시간,몇일이 될수도 있는건데요. 상대시간이라고 하는게 아마도
알람지정시간 - 지금시간 을 말하는것같습니다. (보통 알람 시간 구할때 저렇게 구하거든요.)
예를들어 , 20110901. 1시 00분 의 ms가 10이라 가정하면(그럴일은 없겠지만 가정입니다 ^^;) 미래일경우 20110901 .2시 00분 은 ms가 11이라고 가정합니다.
11 - 10 = 1 이므로 알람시간에 1을 대입하면 현재시간으로부터 1만큼 간 시간후에 알람이 울리게 되는건데요. 그시간이 상대시간이라 표현한것같네요. (몇분전.. 뭐 이런것도 같이 계산하시면 됩니다. D-day 어플같은경우도 비슷한 맥락이죠.)
또. 알람 등록시 한 context에서 한개만 가능한것같더군요. ^^; 여러개 등록했을시 어떠한 id가 있어서 그 id만 불러다가 취소하면 좋겠지만.. 그게 안된다는겁니다. (그래서 DB 사용해서 쿵짝쿵짝 하는것같네요.)
추가/편집/취소 등등의 구현이 쉽지가 않다는거에요;;
notification은 알람과 조금 다른데..
알람이 울릴경우 어떠한 페이지를 호출하게 됩니다. (알람의 기능은 여기서 끝입니다.)
호출됨과 동시에 notification을 등록해두면 알람울리면서 통지도 동시에 뜨는거죠.
그럼 통지에 뜨는 걸 누를경우 다른 페이지로 이동한다. 요것 또한 알람과 같은맥락으로 PendingIntent로 구현하시면 됩니다.
각각의 개념이 어렵진 않지만 보통 알람 구현시 통지도 동시에 구현하다보니 맞물리는 부분이 있어서 조금 헷갈리시는거에요 ^^;
Alarm --> Alarm Action
Notification --> Notificatioin Action
요렇게 되겠네요.
카카오톡에서 메시지가 왔을경우 "확인","아니오" 머 이런거 뜨는건 알람에서 띄우는거고, 확인 안했을시 통지에 들어가있는경우는 Notification에서 구현한겁니다.
또한 여담인데, 카카오톡에서 팝업으로 뜨는건 팝업이 아니라 Activity 라는;;;; ㅎㅎ;; 테마적용한 Activity 같더군요.. (아이폰처럼 팝업이 뜨는 기능이 안되더군요.)
에구.. 저처럼 고생하시는분이 또 계실줄이야 ㅠㅠ
맨땅의 헤딩이 실력향상인것같습니다. ㅎㅎ 우리 서로 열심히 해요~