안드로이드 Notification Helper 자료를 검색하고 내용을 보강하고 적어둔다.
안드로이드 8.0 이상(targetSdkVersion 26 이상)에서도 동작되는 코드다.
Noti 메시지를 띄우는createNotification(String title, String message) 과 클릭하면 cancelNotification(Context ctx, int notifyId) 되는 걸 테스트했다.
핵심은 NotificationHelper Class 만드는 것이고 나머지는 간단하게 사용해본 것이다.
public class NotificationHelper { |
테스트에 사용한 파일을 첨부
PendingIntent PendingIntent는 Intent를 포함하는 인텐트로, 목적은 본인 앱이 아닌 외부 앱(Notification, Alarm 등)에게 권한을 줘서 본인 앱을 실행할 수 있도록 허락하는 것이다. A PendingIntent is a token that you give to a foreign application (e.g. NotificationManager, AlarmManager, Home Screen AppWidgetManager, or other 3rd party applications), which allows the foreign application to use your application's permissions to execute a predefined piece of code. pending : 미결의, ~를 기다리는 동안 Intent의 기본 개념은 특정 컴포넌트(Activity, Service, Broadcast Receiver, Content Provider)를 실행시키는 메시지라는 것이다. Intent intent = new Intent(MainActivity.this, NewActivity.class); startActivity(intent); 그런데 PendingIntent는 생성자가 없고 다음 세 개의 메소드들에 의해서 객체가 생성된다. - 액티비티를 시작할 인텐트를 생성하기 위해선 PendingIntent.getActivity()를 사용한다. Intent intent = new Intent(context, MainActivity.class); - 정상적인 Activity lifecycle을 태우기 위해선, PendingIntent 생성시 requestCode를 반드시 넣어야한다.(대부분 default값으로 0을 넣는다) - FLAG_CANCEL_CURRENT : 이전에 생성한 PendingIntent는 취소하고 새로 만든다. 알람 확인 및 취소 게시글 : https://migom.tistory.com/10 |
참고사이트
https://www.androidauthority.com/android-8-0-oreo-app-implementing-notification-channels-801097/
'안드로이드 > Android 기능' 카테고리의 다른 글
Android EditText에서 줄 바꿈을 추가하는 방법 (0) | 2018.09.21 |
---|---|
Android – TextView autoLink attribute (0) | 2018.09.21 |
안드로이드 6.0 이상 위험권한(permission) 체크 with TedPermission (2) | 2018.08.16 |
Android View (1) | 2018.03.20 |
WindowManager 주요 Flag (0) | 2018.02.24 |