이 예는 활동이 충돌하는 경우 Android 알림을 지우는 방법을 보여줍니다.
1단계 − Android Studio에서 새 프로젝트를 생성하고 파일 ⇒ 새 프로젝트로 이동하여 필요한 모든 세부 정보를 입력하여 새 프로젝트를 생성합니다.
2단계 − res/layout/activity_main.xml에 다음 코드를 추가합니다.
<전> xml 버전 ="1.0" 인코딩 ="utf-8" ?>3단계 − src/MainActivity에 다음 코드를 추가합니다.
패키지 app.tutorialspoint.com.notifyme;import android.app.NotificationChannel;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android. support.v4.app.NotificationCompat;import android.support.v7.app.AppCompatActivity;import android.view.View;public class MainActivity extends AppCompatActivity { public static final String NOTIFICATION_CHANNEL_ID ="10001"; 개인 최종 정적 문자열 default_notification_channel_id ="기본"; @Override 보호된 무효 onCreate(SavedInstanceState 번들) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); } 공개 무효 createNotification(보기 보기) { 의도 알림 인텐트 =new Intent(getApplicationContext() , MainActivity.class ); notificationIntent.putExtra( "fromNotification" , true ); notificationIntent.setFlags(의도.FLAG_ACTIVITY_CLEAR_TOP | 의도.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent PendingIntent =PendingIntent. getActivity( this, 0, notificationIntent, 0); 알림 관리자 mNotificationManager =(알림 관리자) getSystemService( NOTIFICATION_SERVICE ); NotificationCompat.Builder mBuilder =new NotificationCompat.Builder(MainActivity. this, default_notification_channel_id ); mBuilder.setContentTitle( "내 알림" ); mBuilder.setContentIntent(pendingIntent); mBuilder.setColor(getColor(R.color.colorPrimary)); mBuilder.setContentText( "알림 리스너 서비스 예제" ); mBuilder.setSmallIcon(R.drawable.ic_launcher_foreground); mBuilder.setAutoCancel( true ); if (android.os.Build.VERSION. SDK_INT>=android.os.Build.VERSION_CODES. O ) { int 중요도 =NotificationManager. IMPORTANCE_HIGH; NotificationChannel notificationChannel =new NotificationChannel( NOTIFICATION_CHANNEL_ID , "NOTIFICATION_CHANNEL_NAME" , 중요도); mBuilder.setChannelId( NOTIFICATION_CHANNEL_ID ); 어설션 mNotificationManager !=null; mNotificationManager.createNotificationChannel(notificationChannel); } 어설션 mNotificationManager !=null; mNotificationManager.notify(( int ) 시스템.currentTimeMillis() , mBuilder.build()); }}
4단계 − src/CrashHandler에 다음 코드를 추가합니다.
패키지 app.tutorialspoint.com.notifyme;import android.app.NotificationManager;import android.content.Context;public class CrashHandler 구현 Thread.UncaughtExceptionHandler { private static final int NOTIFICATION_ID =12345; 개인 Thread.UncaughtExceptionHandler defaultUEH; 개인 알림 관리자 알림 관리자; 공개 CrashHandler(컨텍스트 컨텍스트) { this . defaultUEH =스레드. getDefaultUncaughtExceptionHandler(); notificationManager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); } public void uncaughtException (Thread t, Throwable e) { if ( notificationManager !=null ) { try { notificationManager .cancel( NOTIFICATION_ID ); } catch (Throwable ex) { ex.printStackTrace(); } } 알림 관리자 =null; defaultUEH .uncaughtException(t, e); }}
5단계 − AndroidManifest.xml에 다음 코드 추가
<전> xml 버전 ="1.0" 인코딩 ="utf-8" ?>