我在活动中设置了通知。它按预期创建通知。当我回到主屏幕时,通知仍在那里,很好。如果我点击通知,它会将我带回创建它的活动,很棒。如果我单击按钮取消通知,我会收到NullPointerException。
这是电话:
if (notificationManager == null)
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent intent = new Intent(this, myClass.class);
Notification notification = new Notification(android.R.drawable.icon, getString(R.string.notify), System.currentTimeMillis());
notification.setLatestEventInfo(myClass.this, "AppName","Description", PendingIntent.getActivity(this.getBaseContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));
notificationManager.notify(1, notification);
这是取消:
private OnClickListener onClick_Buttons = new OnClickListener() {
@Override
public void onClick(View v) {
try {
switch (v.getId()) {
case R.id.btn:
notificationManager.cancel(1);
break;
}
} catch (Exception e) {
Log.e(getString(R.string.app_name), e.getMessage());
}
}
};
这是logcat:
FATAL EXCEPTION: main
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.e(Log.java:215)
at com.myApp.myClass$2.onClick(myClass.java:281)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8817)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
我错过了什么?
由于
答案 0 :(得分:4)
一位小金属工告诉我: 把这个`
if (notificationManager == null)
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
在取消行之前