Notification 게시 오류 문제

3145 단어 notificationandroid
스스로 Notification을 배울 때 연습을 써서 Notification을 발표했다.
런타임에 오류가 발생했습니다.
04-28 08:18:36.766: E/AndroidRuntime(683): FATAL EXCEPTION: main04-28 08:18:36.766: E/AndroidRuntime(683): java.lang.IllegalArgumentException: contentView required: pkg=com.carter id=43 notification=Notification(vibrate=default,sound=default,defaults=0xffffffff,flags=0x0) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.os.Parcel.readException(Parcel.java:1326) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.os.Parcel.readException(Parcel.java:1276) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.app.NotificationManager.notify(NotificationManager.java:111) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.app.NotificationManager.notify(NotificationManager.java:91) 04-28 08:18:36.766: E/AndroidRuntime(683): at com.carter.NotificationTestActivity$1.onClick(NotificationTestActivity.java:45) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.view.View.performClick(View.java:2485) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.view.View$PerformClick.run(View.java:9080) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.os.Handler.handleCallback(Handler.java:587) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.os.Handler.dispatchMessage(Handler.java:92) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.os.Looper.loop(Looper.java:123) 04-28 08:18:36.766: E/AndroidRuntime(683): at android.app.ActivityThread.main(ActivityThread.java:3683) 04-28 08:18:36.766: E/AndroidRuntime(683): at java.lang.reflect.Method.invokeNative(Native Method) 04-28 08:18:36.766: E/AndroidRuntime(683): at java.lang.reflect.Method.invoke(Method.java:507) 04-28 08:18:36.766: E/AndroidRuntime(683): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 04-28 08:18:36.766: E/AndroidRuntime(683): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 04-28 08:18:36.766: E/AndroidRuntime(683): at dalvik.system.NativeStart.main(Native Method)
대체적으로 말하면, 불법 매개 변수 이상을 던졌는데, 그 이유는 콘텐츠View가 필요하기 때문이다
소스 코드:
Intent intent = new Intent(NotificationTestActivity.this, OtherActivity.class);
				PendingIntent pendIntent = PendingIntent.getActivity(NotificationTestActivity.this, 0, intent, 0);
				
				
				Notification notification = new Notification();
				notification.icon = R.drawable.ok;
				notification.when = System.currentTimeMillis();
				notification.tickerText = "        ";
				notification.defaults = Notification.DEFAULT_ALL;
								
				NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
				manager.notify(NOTIFICATION_ID, notification);

분석해 보니 원인을 찾았는데 원래는 Notification을 설정하지 않았다.setLatestEventInfo() 메서드,
notification 각 속성 이후 발송 전에 추가
notification.setLatestEventInfo(NotificationTestActivity.this, "    ", "        ", pendIntent);

이후에 모든 것이 정상이 되었다.
구체적인 원인은 아직 모르니 그 원리를 아는 친구가 있으면 많이 지적해 주십시오.

좋은 웹페이지 즐겨찾기