gpt4 book ai didi

c# - 如果在后台 Android Xamarin,获取通知消息以在前台显示我的应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:02 24 4
gpt4 key购买 nike

我提前道歉,因为我不是特别有经验的 Android 开发人员,而且我正在使用 C# 在 Xamarin 中开发一个 Android 项目。我希望这个问题不是重复的,因为我似乎还找不到,但如果是,请将其标记为重复,我很乐意删除该问题。

我希望我的机器人应用程序的图标在启动和运行时显示在通知栏中。当应用程序进入销毁事件时,我希望删除图标和消息。到目前为止,我似乎已经了解了这一点,但我似乎无法找到或弄清楚如何单击通知消息将我正在运行的应用程序置于前台(仅当它尚未出现时)。我认为我在我的代码中采取了错误的总体方向,也许这涉及即将发生的 Intent 或类似的事情?这是我的代码。也许我很接近,或者我走错了方向,但是任何人都可以提供任何帮助或指示,我们将不胜感激。

[Activity(Label = "MyActivity", MainLauncher = true, Theme = "@android:style/Theme.NoTitleBar")]
public class MainActivity : Activity
{
Notification notification = null;
NotificationManager notificationManager = null;
const int notificationId = 0;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Notification.Builder builder = new Notification.Builder(this)
.SetContentTitle("My App is Running")
.SetContentText("Show in forground")
.SetSmallIcon(Resource.Drawable.Icon);

// Build the notification:
notification = builder.Build();

// Get the notification manager:
notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;

// Publish the notification:
notificationManager.Notify(notificationId, notification);
}

protected override void OnDestroy()
{
Log.Debug(logTag, "Location app is becoming inactive");
notificationManager.Cancel(notificationId);
base.OnDestroy();
}
}

最佳答案

I can't seem to find or figure out how to make a click of the notification message bring my running app into foreground (only if it is not already)

您需要告诉通知在被点击时它需要做什么(启动哪个 Activity )。

var intent = new Intent(context, typeof(MainActivity)); 
//activity will not be launched if it is already running at the top of the history stack.
intent.AddFlags(ActivityFlags.SingleTop);

//Flag indicating that this PendingIntent can be used only once.
var pendingIntent = PendingIntent.GetActivity(context, 0
, intent, PendingIntentFlags.OneShot);
Notification.Builder builder = new Notification.Builder(this)
.SetContentTitle("My App is Running")
.SetContentText("Show in forground")
.SetSmallIcon(Resource.Drawable.Icon)
.SetContentIntent(pendingIntent);

阅读更多关于 Notification.Builder 的信息了解上述代码的每一项的含义以及您还有哪些其他选择。

关于c# - 如果在后台 Android Xamarin,获取通知消息以在前台显示我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38771170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com