问题描述
当应用程序处于后台时,我需要显示本地通知。单击通知后,我需要打开我的应用程序。当取消通知时,我需要从应用程序的内部逻辑中调用方法,而应用程序本身应保持在后台。不幸的是,我只能从第二个活动中调用该方法,我需要在该调用后立即完成。我不确定这是否安全,每次启动活动并在启动后不久完成活动是否正常?
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 (将#修改为@)