每个标题,它并不总是启动活动。 输出日志中没有错误,只是说
06-01 16:46:36.924:I / ActivityManager(370):START u0 {flg = 0x10000000 CMP = com.myapp / md527315440e30c82eb86ffbe7caee6cb98.MyView bnds = [96,712] [1056,840](有额外内容)}来自pid -1
我的意思是“并不总是”是这样的:
以下是添加通知的代码:
void CreateNotification (Context context, PushNotification pn)
{
var builder = new NotificationCompat.Builder (context)
.SetContentTitle (pn.Title)
.SetContentText (pn.Body)
.SetSmallIcon (Resource.Drawable.launcher)
.SetLargeIcon (Android.Graphics.BitmapFactory.DecodeResource (context.Resources, Resource.Drawable.launcher))
.SetSound (Android.Provider.Settings.System.DefaultNotificationUri)
.SetAutoCancel (true);
Android.Support.V4.App.TaskStackBuilder stackBuilder = Android.Support.V4.App.TaskStackBuilder.Create(context);
stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(LoginView)));
stackBuilder.AddNextIntent(GetIntent());
PendingIntent resultPendingIntent = stackBuilder.GetPendingIntent(0, (int)PendingIntentFlags.UpdateCurrent);
builder.SetContentIntent(resultPendingIntent);
var notificationManager = context.GetSystemService (Context.NotificationService) as NotificationManager;
notificationManager.Notify(1, builder.Build());
}
static Intent GetIntent ()
{
// returns an intent
}
我看到了同样问题的其他问题,但没有解决方案有效。 如果有人可以提供一些提示或想法,为什么这可能不起作用。
答案 0 :(得分:1)
查看"设置常规活动PendingIntent" android notifications的一部分。您没有遵循示例中列出的准则。特别是,您不能执行以下操作:
根据启动Activity的Intent创建一个后台堆栈: 创建Intent以启动Activity。通过创建堆栈构建器 调用TaskStackBuilder.create()。将后栈添加到堆栈 通过调用addParentStack()构建器。对于每个活动 您在清单中定义的层次结构,后端堆栈包含 启动Activity的Intent对象。此方法还添加了标志 在一个新任务中启动堆栈。注意:虽然参数为 addParentStack()是对已启动的Activity,方法的引用 call不会添加启动Activity的Intent。相反,那是 在下一步中得到照顾。
从通知中添加启动活动的Intent 调用addNextIntent()。传递您在第一步中创建的Intent 作为addNextIntent()的参数。如果需要,请添加参数 通过调用堆栈上的Intent对象 TaskStackBuilder.editIntentAt()。有时需要确保这一点 目标Activity在用户显示有意义的数据时 使用Back导航到它。获取此堆栈的PendingIntent 调用getPendingIntent()。然后,您可以使用此PendingIntent作为 setContentIntent()的参数。
抱歉格式化。我不确定如何保留网站上的原文。