Android 函数在不应该被调用时被调用

Android 函数在不应该被调用时被调用,android,flutter,dart,push-notification,scheduling,Android,Flutter,Dart,Push Notification,Scheduling,有一个预定的通知,应该在5秒后显示。正在void initState函数中调用此计划通知。我用它来显示通知 通知在5秒后显示,因此没有问题 问题是,当单击通知时,应该调用另一个函数。但是这个函数在通知出现之前很久就被调用了,我不知道这是怎么发生的。我尝试过不同的方法来解决这个问题,但都不管用 “保持低调”是所有这些发生的代码 class\u HomePageState扩展状态{ flatterlocalnotificationsplugin flatterlocalnotificationspl

有一个预定的通知,应该在5秒后显示。正在
void initState
函数中调用此计划通知。我用它来显示通知

通知在5秒后显示,因此没有问题

问题是,当单击通知时,应该调用另一个函数。但是这个函数在通知出现之前很久就被调用了,我不知道这是怎么发生的。我尝试过不同的方法来解决这个问题,但都不管用

“保持低调”是所有这些发生的代码

class\u HomePageState扩展状态{
flatterlocalnotificationsplugin flatterlocalnotificationsplugin;
@凌驾
void initState(){
super.initState();
FlatterLocalNotificationsPlugin=新的FlatterLocalNotificationsPlugin();
var android=新的AndroidInitializationSettings(“@mipmap/ic_launcher”);
var initNotifSettings=新的初始化设置(android,null);
flatterLocalNotificationsPlugin.initialize(initNotifSettings,
onSelectNotification:whenNotificationSelect);
showNotification();
}
Future whenNotificationSelect(字符串有效负载)异步{
打印(“有效载荷:$Payload”);
pushNamed(上下文“/notifications”);
}
showNotification()异步{
var android=新的AndroidNotificationDetails(
“频道id”、“频道名称”、“频道描述”);
var platform=newnotificationdetails(安卓,空);
变量scheduledNotificationDateTime=
DateTime.now().add(持续时间(秒:2));
等待通知日程安排(
0,
“早上好!”,
“我的问候。”,
scheduledNotificationDateTime,
平台,
有效负载:“简单应用程序”,
);
}
}
注意在单击通知时需要调用函数
whenNotificationSelect
,但由于其他原因,我不知道在应用程序启动时会立即调用此函数我希望
whenNotificationSelect仅在单击通知时调用,而不是在应用程序启动时调用

谢谢你,太爱你了。

试试这个

onSelectNotification:(String payload) => whenNotificationSelect(String payload)
当您不使用(字符串有效负载)时,这意味着该函数也将在null时触发。每当您必须传递参数时,请使用
(参数)=>functionName(参数)

尝试以下方法

onSelectNotification:(String payload) => whenNotificationSelect(String payload)
当您不使用(字符串有效负载)时,这意味着该函数也将在null时触发。每当必须传递参数时,请使用
(参数)=>functionName(参数)