Android Xamarin-获取应用程序的通知或保留数据,直到应用程序被强制停止

Android Xamarin-获取应用程序的通知或保留数据,直到应用程序被强制停止,android,xamarin,xamarin.android,Android,Xamarin,Xamarin.android,我有一个应用程序,可以随时向用户发送通知。其中一些非常重要,所以我将它们设置为“正在进行”,所以用户无法通过刷卡删除它们,当用户在应用程序中删除它们或应用程序强制停止时,它们会被删除 当我创建此通知时,我向静态列表中添加了具有一些数据名、文本、id和创建通知的日期时间的对象,它可以正常工作。但是当有一些重要的正在进行的通知并且用户关闭时,应用程序将通过左侧的hw按钮转到活动应用程序列表并滑动关闭它,静态通知列表将被清除 那么,我怎样才能: 保存对象的数据列表,直到强制终止应用程序,直到通知消失

我有一个应用程序,可以随时向用户发送通知。其中一些非常重要,所以我将它们设置为“正在进行”,所以用户无法通过刷卡删除它们,当用户在应用程序中删除它们或应用程序强制停止时,它们会被删除

当我创建此通知时,我向静态列表中添加了具有一些数据名、文本、id和创建通知的日期时间的对象,它可以正常工作。但是当有一些重要的正在进行的通知并且用户关闭时,应用程序将通过左侧的hw按钮转到活动应用程序列表并滑动关闭它,静态通知列表将被清除

那么,我怎样才能:

保存对象的数据列表,直到强制终止应用程序,直到通知消失 或

获取由应用程序需要名称和id创建的活动通知集合, 如果可能的话,甚至是文本 谢谢


编辑:如果你知道如何用Java开发移动应用程序,你可以帮我说,你会如何用Java开发移动应用程序,Xamarin与它非常相似,所以如果你这样做,我想,我会找到一种方法。

如果你想创建一个不清晰的可访问通知,对于Api级别低于11的,设置

对于高于11的Api级别,如果设置为true,则用户不会拒绝通知

例如:

Notification.Builder builder = new Notification.Builder(this)
        .SetContentTitle("Sample Notification")
        .SetContentText("Hello World! This is my first notification!")
        .SetSmallIcon(Resource.Drawable.ic_notification)
        .SetOngoing(true);
将其设置为true后,请确保您的应用程序/服务将处理取消此通知的操作

更新:

获取由应用程序创建的活动通知的集合,这些通知需要名称和id,如果可能,甚至需要文本

保存对象的数据列表,直到强制终止应用程序,直到通知消失

作为Samuh,当您创建android应用程序并初始化静态变量时,它将保留在JVM中,直到发生以下情况之一:

该类已卸载 JVM关闭 这个过程结束了 所以你的静态列表将一直存在,直到你的应用被强制终止。正如你所说

用户关闭应用程序通过左侧的hw按钮转到活动应用程序列表,然后滑动将其关闭,静态通知列表被清除

所以你已经实现了这个功能,如果这不是你想要的效果,请详细说明一下


如果您想在应用程序关闭时保存列表,您可以尝试在onstop等中将列表保存到共享首选项或文件中

是的,我已经做过了。但我该如何做:1获取应用程序创建的所有活动通知2在应用程序关闭后保存数据,但在应用程序强制停止之前,我想选择用户仅关闭应用程序中的通知,我是这样做的:当用户创建通知时,我将其添加到静态列表中。但当应用程序通过滑动而不是强制停止关闭时,静态列表将被清除,但通知仍保留在那里。如何保存数据直到游戏被强制停止,或者如何获取活动通知列表?或者我如何测试通知ID是否存在?@SoptikHa,很抱歉反应太晚,我更新了我的答案,您可以看看。谢谢!我不在家,也没有电脑来测试,所以我会在3到4天内试用。谢谢你的回答:-
NotificationManager notifyManager = (NotificationManager)GetSystemService(Context.NotificationService);
StatusBarNotification[] notificationList = notifyManager.GetActiveNotifications();

foreach (Android.Service.Notification.StatusBarNotification sbnin notificationList)
{
    Debug.WriteLine("sbn.Id " + sbn.Id);
    Debug.WriteLine("sbn.PostTime " + sbn.PostTime);
    Debug.WriteLine("System.Diagnostics.Debug.WriteLine("notification = " + sbn.ToString());= " + sbn.ToString());
}