【问题标题】:Android Notification intent destroyes activityAndroid通知意图破坏活动
【发布时间】:2013-12-23 22:26:33
【问题描述】:

我正在尝试在我的应用中使用通知,但使用以下代码时遇到问题:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification)
        .setContentTitle("title")
        .setContentText("message");
        builder.setOngoing(true);
        Intent resultIntent = new Intent(this,StartActivity.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
        stackBuilder.addParentStack(StartActivity.class);
        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(
            0,
            PendingIntent.FLAG_UPDATE_CURRENT
        );
        builder.setContentIntent(resultPendingIntent);
        notificationManager.notify(1, builder.build());

当我返回主屏幕并单击状态栏中的通知时,StartActivity 被销毁并再次创建。但是,我只想让 Activity 再次显示,就像在这个时刻单击启动器图标一样。我该如何改变呢?

问候

【问题讨论】:

    标签: android android-intent android-notifications android-notification-bar


    【解决方案1】:

    尝试添加

    resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    

    在创建 PendingIntent 之前

    来源:

    How to make notification intent resume rather than making a new intent?

    【讨论】:

    【解决方案2】:

    以下对我有用:

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.notification)
            .setContentTitle("title")
            .setContentText("message");
            builder.setOngoing(true);
            Intent resultIntent = new Intent(this,NotificationActivity.class);///!!!!
            resultIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
            builder.setContentIntent(resultPendingIntent);
            notificationManager.notify(1, builder.build());
    

    NotificationActivity 是一个特殊的类,它在 onCreate() 中立即结束,并将应用程序的任务带到前台。来源:Notification to restore a task rather than a specific activity?

    【讨论】:

      猜你喜欢
      • 2016-07-07
      • 2013-11-16
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      相关资源
      最近更新 更多