이번에 알림기능을 넣고 앱을 테스트 하면서
안드로이드 ics 버전에서 앱이 죽는 현상이 발생하여 다음과 같이 해결
public static void ViewNotice(String notiTitle ,String notiContent,Context context){ NotificationManager mNM; mNM = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); Intent mI = new Intent(); mI.setClass(context, NotiViewActivity.class); mI.putExtra("NOTICE", notiContent); mI.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, mI, PendingIntent.FLAG_UPDATE_CURRENT); Notification notification = null; //안드로이드 버전 체크 if(Build.VERSION_CODES.KITKAT<Build.VERSION.SDK_INT){ //킷켓보다 버전 보다 높을 경우
Notification.Builder builder = new Notification.Builder(context); builder.setSmallIcon(R.drawable.icon_t); builder.setWhen(System.currentTimeMillis()); builder.setContentTitle("공지 제목"); builder.setContentText("공지 내용"); builder.setContentIntent(contentIntent); notification = builder.build(); }else{ //킷켓 버전이하일 경우
notification = new Notification(R.drawable.icon_t, null, System.currentTimeMillis()); notification.setLatestEventInfo(context, "공지 제목","공지 내용", contentIntent); } notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE; notification.defaults |= Notification.DEFAULT_SOUND; mNM.notify(0, notification); }
특정버전 이하에서는 Notification notification = builder.build(); 지원하지 않는것 같음
안드로이드 ics 버전에서는 다음과 같이 정의하면 오류가 나지 않는다.
notification = new Notification(R.drawable.icon_t, null, System.currentTimeMillis()); notification.setLatestEventInfo(context, "공지 제목","공지 내용", contentIntent);