取消通知时的调用方法

问题描述

当应用程序处于后台时,我需要显示本地通知。单击通知后,我需要打开我的应用程序。当取消通知时,我需要从应用程序的内部逻辑中调用方法,而应用程序本身应保持在后台。不幸的是,我只能从第二个活动中调用方法,我需要在该调用后立即完成。我不确定这是否安全,每次启动活动并在启动后不久完成活动是否正常?

var intent = new Intent(Actionopen,null,AndroidApp.Context,typeof(MainActivity));
            intent.PutExtra(TitleKey,title);
            intent.PutExtra(MessageKey,message);
            intent.PutExtra(IdKey,situationId);

            var intentDelete = new Intent(Actiondismiss,typeof(dismissActivity));
            intentDelete.PutExtra(IdKey,situationId);
            intentDelete.PutExtra(IsdismissKey,true);

            var pendingIntent = PendingIntent.GetActivity(AndroidApp.Context,pendingIntentId,intent,PendingIntentFlags.Oneshot);
            var pendingIntentDelete = PendingIntent.GetActivity(AndroidApp.Context,pendingIntentIdDelete,intentDelete,PendingIntentFlags.Oneshot);            

            var groupBuilder = new NotificationCompat.Builder(AndroidApp.Context,channelId)
                .SetContentIntent(pendingIntent)
                .SetSubText(title)
                .SetColor(0x169AB9)
                .SetGroup("GROUP-" + situationId)
                .SetGroupSummary(true)
                .SetDeleteIntent(pendingIntentDelete)
                .SetAutoCancel(false)
                ;

以及次要活动:

    [Activity(Label = "dismissActivity")]
    public class dismissActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            CreateNotificationFromIntent(Intent);
            Finish();
        }
        protected override void OnNewIntent(Intent intent)
        {
            CreateNotificationFromIntent(intent);
        }

        void CreateNotificationFromIntent(Intent intent)
        {
            if (intent?.Extras != null)
            {
                var isdismiss = intent.Action == Androidnotificationmanager.Actiondismiss;
                var id = intent.Extras.GetInt(Androidnotificationmanager.IdKey);
                DependencyService.Get<Inotificationmanager>().ReceiveNotification(null,id.ToString(),isdismiss);
            }
        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)