2012-08-03 3 views
0

현재 부트 온 서비스가있는 앱을 작성하고 있습니다. 이 서비스는 일정 시간이 지나면 알림을 표시하고 주어진 기간에 새로운 정보로 업데이트합니다. 현재 더 이상 배터리를 절약 할 필요가 없습니다. 업데이트 시퀀스가 ​​작동하기 만하면됩니다.서비스에서 Android 알림을 확인 하시겠습니까?

나는 문제를 일으켰다. BroadcastReceiver 부트를 작성하여 내 서비스를 시작합니다. 그것, 나는 Timer와 TimerTask를 통해 작업을합니다. 그러나 내가 알았 듯이 알림이 삭제되었는지 쉽게 확인할 방법이 없으므로 알림을 삭제하려고 시도하지 않고 다시 작성하십시오.

private Notification n; 

NotifTask extends TimerTask { 
    public void run() { 
     if(n.exists){ 
      // Update notification 
     }else{ 
      n = Notification.Builder(context).[customize it].build(); 
     } 
    } 
} 

그리고 서비스의 ONSTART에

는이 작업을 10 초마다 실행되는 어떤 타이머를 설정 :

내가 뭘 원하는지. 자, 내 질문은 : "n.exists"부분을 의도없이 쉽게 수행 할 수있는 방법이 있습니까?

답변

0

알림을 게시하고이 알림이 이미있는 경우 새로운 정보로 업데이트됩니다. 존재하지 않으면 생성됩니다. 나는 네가 원하는 행동을하기 위해 특별한 일을 할 필요가 없다고 생각한다. documentation for NotificationManager.notifiy()에서

:

올리기 알림이 상태 표시 줄에 표시합니다. 동일한 ID를 가진 알림이 이미 신청서에 게시되어 있고 이 취소되지 않은 경우 업데이트 된 정보로 대체됩니다.

+0

문제는 Notification SDK.notify()가 대상 SDK에서 사용되지 않으므로 사용하지 않는 것입니다. – fonix232

+0

어? 타겟 SDK는 무엇입니까? 'NotificationManager.notify()'가 더 이상 사용되지 않는 곳은 어디에도 없습니다. 어떻게 알림을 게시하고 있습니까? –

+0

아, 죄송합니다. 나는이 어제 (표적 SDK는 11-16)를 만지작 거리며, 건축 알림의 일반적인 GB 스타일이 더 이상 사용되지 않지만 게시는하지 않는다고 말했습니다. D 두 가지를 혼합했습니다. 내 잘못! 그리고 답변을 주셔서 감사합니다, 그것이 작동하는지 확인합시다 ... – fonix232

관련 문제