Android之Notification的使用(二)

Android之Notification的使用(二)

接着上篇文章,解决了一些我在使用Notification的过程中的一些bug。但是解决这些问题是远远不够的。

在上篇文章中,解决了多个Notification跳转到同一个Activity中的问题。
但是那样子做并不能完全解决问题,下面来看一下,我新遇到的问题。

先上代码

Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
String currentTime =  DateTimeUtil.formatDateDefault(Calendar.getInstance().getTime());
intent.putExtra("time", currentTime);
int notificationId = (int) System.currentTimeMillis();
PendingIntent pendingIntent= PendingIntent.getActivity(
    this, notificationId, intent, PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_launcher)
        .setContentTitle(currentTime)
        .setContentText("text")
        .setTicker("tricker")
        .setStyle(new NotificationCompat.BigTextStyle().bigText("big text"))
        .setAutoCancel(true)
        .setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager)
        this.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = mBuilder.build();
notification.defaults=Notification.DEFAULT_SOUND;
notification.vibrate = new long[] {100,400,100,400};
notification.ledARGB=Color.GREEN;//led灯颜色
notification.ledOffMS=1000;//关闭时间 毫秒
notification.ledOnMS=1000;//开启时间 毫秒
notification.flags|=Notification.FLAG_SHOW_LIGHTS;
notificationManager.notify(notificationId, notification);

和上一个例子不同的是,这一个Notification跳转的位置并不是OtherActiivty
而是直接跳转到MainActivity.

问题
非常不幸的事,他并不能够正常接收么Intent传过来的参数。至于为什么,我也不知道。
如您知道这个的具体原因请告知我(邮箱:lovecluo@gmail.com)。

解决办法

虽然不知道是什么原因造成了这个问题,但是最终还是找到了解决方案:

解决方法如下:

@Override
protected void onNewIntent(Intent intent) {
    Log.d(TAG, "[onNewIntent] 执行onNewIntent方法");
    showReciveParams(intent);
}

写在最后

本次试验的代码地址:下载地址:NotificationDemo_02

参考资料

[1] onNewIntent调用时机