- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
为什么我们在创建通知时使用TaskStackBuilder
?我不明白它背后的逻辑。
谁能解释一下。
public void showText(final String text){
Intent intent = new Intent (this, MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(intent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_MAX)
.setDefaults(Notification.DEFAULT_VIBRATE)
.setContentIntent(pendingIntent)
.setContentText(text)
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICACTION_ID, notification);
}
最佳答案
假设您有一个电子邮件发送应用程序,其中有两个 Activity 。一个是MainActivity
,它有电子邮件列表,另一个用于显示电子邮件(EmailViewActivity
)。因此,现在当您收到新电子邮件时,您会在状态栏上显示通知。现在,您希望在用户单击该电子邮件时查看该电子邮件,并且在用户单击返回按钮后显示该电子邮件后,您希望显示电子邮件列表 Activity (MainActivity
)。对于这种情况,我们可以使用 TaskStackBuilder
。见下例:
public void showEmail(final String text){
Intent intent = new Intent (this, MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(intent);
Intent intentEmailView = new Intent (this, EmailViewActivity.class);
intentEmailView.putExtra("EmailId","you can Pass emailId here");
stackBuilder.addNextIntent(intentEmailView);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_MAX)
.setDefaults(Notification.DEFAULT_VIBRATE)
.setContentIntent(pendingIntent)
.setContentText(text)
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICACTION_ID, notification);
}
希望你能理解。
点击以下网址了解更多详情: http://developer.android.com/reference/android/support/v4/app/TaskStackBuilder.html http://developer.android.com/guide/components/tasks-and-back-stack.html http://www.programcreek.com/java-api-examples/index.php?api=android.app.TaskStackBuilder
关于android - 为什么我们使用 TaskStackBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36912325/
我尝试按照 android 教程在 Android O 中测试 Notification Channel。当我进入显示通知的步骤时,我看到他们使用 TaskStackBuilder,我想知道 addP
TaskStackBuilder 到底有什么问题,它在开始新 Activity 时使用了这种丑陋的过渡。: TaskStackBuilder taskStackBuilder = TaskSt
我想做的是在 Android 中创建一个通知,只要它被点击就会打开一个 Activity。此 Activity 称为“NotificationsActivity”,其父 Activity 为“Main
我正在按照示例 here 设置通知.我的应用程序与 API 15 和其他版本兼容。这是我的代码: @Override public void onReceive(Context context
我正在尝试使用 TaskStackBuilder带有通知以创建返回堆栈以供后退按钮通过。我的应用程序的正常流程: Activity A 从启动器启动。 用户从 A 中选择一个项目,该项目启动 B 并附
我正在使用 Android L 转换,在 Intent 中传递 ActivityOptions 包。如何使用 TaskStackBuilder 以相同的 Intent 重现动画? 这是我目前使用单个
为什么我们在创建通知时使用TaskStackBuilder?我不明白它背后的逻辑。 谁能解释一下。 public void showText(final String text){ Inten
所以我正在研究 Android 通知, 我在 android documentation 上尝试了一个通知示例: 在其中一个示例中,它展示了如何通过通知打开 Activity 。 所以问题是:当我尝试
我在 4.4.2 和 4.4.3 设备上不断发生崩溃(尽管我不确定这是 API 问题),在某些 ParsePushBroadcastReceiver 中,以下代码导致 NullPointerExcep
我需要这样的流程:当通知出现并且用户单击它时,activityB 应该启动,如果用户单击后退按钮它应该转到 activityA,我的问题是,当用户单击通知并且 activityB 正在启动时,堆栈为空
我正在使用 Android TaskStackBuilder 在单击通知时使用预定义堆栈创建通知。 在应用程序中我有 2 个 Activity : MainActivity 启动器 Activity
当 Activity 中发生某些事件时,我会向用户显示一条通知。当我创建通知时,如果我的 Activity 被系统清除,我会使用 TaskStackBuilder 来确保我有 backstack Ac
我在将 TaskStackBuilder 和不同的 PendingIntents 组合用于通知时遇到问题。让我解释一下它是关于什么的。 我有一个 IntentService,它会在出现问题时创建通知。
我正在尝试为使用此代码按下通知的 Activity 重新创建返回堆栈: Intent firstIntent = new Intent(this, First.class); Intent seco
在我的例子中,我有一个使用 startActivityForResult 调用 Activity B 的 Activity A。 Activity B 是一种将数据返回给 Activity A 的表单
我正在尝试从 Android 文档解释的通知中启动一个 Activity ,但是当我打开通知然后按后退按钮时,HomeActivity(父级)没有打开,而是应用程序关闭。我做错了什么? Int
我正在创建在用户设置的时间发出通知的 android 应用程序,当我设置时间并且这个时间到了时,该应用程序会给我以下异常 FATAL EXCEPTION: main java.lang.NoCla
我正在我们的应用程序中开发一些很酷的推送通知并进行一些测试以涵盖当用户单击其中一个通知时应用程序会启动正确的 Intent 以打开正确的 Activity。 在我们的应用程序中,我们有一个 Start
从通知启动我的应用程序时,我需要创建一个合成返回堆栈,因为目标屏幕是进入应用程序导航的几个步骤。如果不使用仅支持 Android 2.3 的 TaskStackBuilder,我该如何做到这一点? 更
我有一个 Activity A,在 Manifest 中用 android:launchMode="singleTask" 声明和另一个没有更多属性的 Activity B。 据我所知,如果已经有一些
我是一名优秀的程序员,十分优秀!