마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

액션 없이 notification 보내기

0 추천

안녕하세요.

 

 

mainActivity class에서 

broadcastreceiver 클래스로 넘겨주는 intent를 포함한 

함수인 alarmBroadcastReceiver를 만들고 oncreate 나 onclicklistener에 

alarmBroadcastReceiver(); 를 넣어서 함수를 실행하면

 

어플을 실행하여 mainactivity에 진입하거나 

버튼을 클릭하면 notification이 실행이 되는데요...

 

아래 소스처럼 월~금 11시에만 noti가 실행되고,

maniactivity진입시 또는 버튼 클릭시에는 notification이 실행되지 않도록 하려면 

어떻게 해야 하는지 문의 드립니다.

 

간혹 은행앱 등에서 공지사항 알릴떄 어플이 실행중이지 않더라도, 또는 특정 버튼을 클릭하지 않아도

noti를 사용자들에게 보내는 것처럼 구현하고자 합니다.

 

감사합니다.

 

 

public void alarmBroadcastReceiver(){


    Intent intent = new Intent(this, AlarmReceiver.class);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);

    Calendar cal = getInstance();
    cal.setTimeInMillis(System.currentTimeMillis());
    cal.set(DAY_OF_WEEK, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY);
    cal.set(HOUR_OF_DAY, 11);


    alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 24*60*60*1000, pendingIntent);
}
케이엠팍 (250 포인트) 님이 2022년 4월 1일 질문
케이엠팍님이 2022년 4월 1일 수정

1개의 답변

0 추천
그건 Firebase Cloud Messaging를 기반으로 동작하는 겁니다. 직접 파이어베이스 노티피케이션을 구현하던가 아니면  OneSignal 등과 같은 솔류션 제공업체의 SDK를 사용하실 수도 있구요. 솔루션을 사용하더라도 내부적으로는 FCM을 사용하게 됩니다. 상당히 긴 내용이기 때문에  안드로이드 개발자 사이트나 구글같은데서 FCM을 어떻게 구현하는지 참고하시기 바랍니다.

FCM: https://firebase.google.com/docs/cloud-messaging
spark (227,470 포인트) 님이 2022년 4월 1일 답변
아... 그렇군요... FCM 하고 jobintentservice 중 jobintentservice로 구현했는데..
현재 방식으로는 어쩔수 없군요 감사합니다~!
...