admin管理员组

文章数量:1122853

android 添加意图,c#

我将Intent添加到Android.Support.V4.App.NotificationCompat.Builder但Extras没有传递到OnNewIntent的重写中,并且似乎该参数始终是相同的Intent 。 这个想法是在用户的通知列表中的foreach通知,我的应用程序创建了一个自定义通知对象,然后创建了Bundle和Intent 。

//custom notification class just contains the information for notifications public class CustomNotification { public string _noteType { get; set; } public string _noteText { get; set; } public string _noteLink { get; set; } public int _noteIndex { get; set; } }

public void SendNotifications(List notificationList)

{

try

{

var _ctx = Android.App.Application.Context;

int _noteCount = 0;

foreach (var note in notificationList)

{

//I'm instantiating a new Intent foreach so not sure why

// each would not have it's own Extras

var resultIntent = new Intent(_ctx, typeof(MainActivity));

var valuesForActivity = new Bundle();

valuesForActivity.PutInt(MainActivity.COUNT_KEY, _count);

//this will always be the same string when it hits OnNewIntent in MainActivity

valuesForActivity.PutString("URL", note._noteLink);

//this will always be the same number when it hits OnNewIntent in MainActivity

valuesForActivity.PutInt("NoteNumber", _noteCount);

resultIntent.PutExtras(valuesForActivity);

var resultPendingIntent = PendingIntent.GetActivity(_ctx, 0, resultIntent, PendingIntentFlags.UpdateCurrent);

resultIntent.AddFlags(ActivityFlags.SingleTop);

// Build the notification:

var builder = new Android.Support.V4.App.NotificationCompat.Builder(_ctx, MainActivity.CHANNEL_ID)

.SetAutoCancel(true) // Dismiss the notification from the notification area when the user clicks on it

.SetContentIntent(resultPendingIntent) // I'm passing the Intent here.. the rest of the builder vars work

.SetContentTitle(note._noteType) // Set the title

.SetNumber(_count) // Display the count in the Content Info

.SetSmallIcon(2130837590) // This is the icon to display

.SetContentText(note._noteText);

MainActivity.NOTIFICATION_ID++;

var notificationManager = Android.Support.V4.App.NotificationManagerCompat.From(_ctx);

notificationManager.Notify(MainActivity.NOTIFICATION_ID, builder.Build());

_noteCount++;

}

}

catch

{

}

}

//this is inside MainActivity.cs

protected override void OnNewIntent(Intent intent)

{

string url = "";

int noteCount = 0;

if (intent != null)

{

//this is always the same url

url = intent.Extras.GetString("URL");

//this is always the same int

noteCount = intent.Extras.GetInt("NoteNumber");

}

try

{

switch (_viewPager.CurrentItem)

{

case 0:

_fm1.LoadCustomUrl(url);

break;

case 1:

_fm2.LoadCustomUrl(url);

break;

case 2:

_fm3.LoadCustomUrl(url);

break;

case 3:

_fm4.LoadCustomUrl(url);

break;

case 4:

_fm5.LoadCustomUrl(url);

break;

}

}

catch

{

}

base.OnNewIntent(intent);

}

我希望当我将Intent传递给构建器时,它将返回唯一值,但是无论我单击哪个通知,相同的字符串始终返回。 在构建每个通知的过程中,我逐步完成了代码,并将唯一的字符串传递到每个Intent 。 我在这里做错了什么?

本文标签: android 添加意图c