从通知中打开申请

时间:2016-07-23 14:38:25

标签: android android-activity android-pendingintent

让我们说我们有Activity显示有趣的图片并将其命名为FunnyActivity。在单击按钮后,可以从MainActivity启动此活动,该活动是在应用程序中的基本活动。我们还希望有时推送一些通知,当用户点击通知时,应启动FunnyActivity。所以我们添加这部分代码:

    Intent notificationIntent = new Intent(this, FunnyActivity.class);
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    PendingIntent intent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), notificationIntent, 0);

此PendingIntent正在通知构建器中使用

setContentIntent(intent)

当然,FunnyActivity正在精彩推出,但我们希望在用户点击FunnyActivity上的后退按钮时打开MainActivity。

我们如何实现这一目标?请记住,当用户回到MainActivity时,他可以再次从按钮打开FunnyActivity。

2 个答案:

答案 0 :(得分:4)

试试这个:

body,
main::before {
  background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/80625/tree.jpg) 0 / cover fixed;
}

main {
  margin: 100px auto;
  position: relative;
  padding: 10px 5px;
  background: hsla(0, 0%, 100%, .3);
  font-size: 20px;
  font-family: 'Lora', serif;
  line-height: 1.5;
  border-radius: 10px;
  width: 60%;
  box-shadow: 5px 3px 30px black;
  overflow: hidden;
}

main::before {
  content: '';
  margin: -35px;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  filter: blur(20px);
  z-index: -1;
}

来源:Create back stack when starting the activity

答案 1 :(得分:0)

你可以试试这个:

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
Intent resultIntent = new Intent(this, FunnyActivity.class);

                    // Adds the back stack
                    stackBuilder.addParentStack(MainActivity.class);
                    // Adds the Intent to the top of the stack
                    stackBuilder.addNextIntent(resultIntent);

Intent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)/*.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))*/
                            .setSmallIcon(R.mipmap.ic_launcher)
                            .setContentTitle(title)
                            .setContentText(msg)
                            .setContentIntent(resultPendingIntent)
                            .setAutoCancel(true);

这是您如何解决问题的方法。希望这可以帮助你