问题描述
我正在尝试推送本地预定通知,我遇到了很多错误然后我有了一个想法,即使用 Flutter_local_notification 和 android_alarm_manager。我安装了它们,可以使用 android 管理器来安排和颤动本地通知以获取通知。 当应用程序在后台时,我可以同时使用两者! 如果我在通知时间到来时关闭应用程序,我会收到一条崩溃消息。
java 文件:
@SuppressWarnings("deprecation")
public class Application extends FlutterApplication
implements io.Flutter.plugin.common.PluginRegistry.PluginRegistrantCallback {
@Override
public void onCreate() {
super.onCreate();
AlarmService.setPluginRegistrant(this);
}
@Override
@SuppressWarnings("deprecation")
public void registerWith(io.Flutter.plugin.common.PluginRegistry registry) {
AndroidAlarmManagerPlugin.registerWith(
registry.registrarFor("io.Flutter.plugins.androidalarmmanager.AndroidAlarmManagerPlugin"));
}
}
@SuppressWarnings("deprecation")
public class EmbeddingV1Activity extends io.Flutter.app.FlutterActivity {
public static final String TAG = "AlarmExampleMainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidAlarmManagerPlugin.registerWith(
registrarFor("io.Flutter.plugins.androidalarmmanager.AndroidAlarmManagerPlugin"));
}
}
我更改了 xml 文件
dart 代码:
FlutterlocalnotificationsPlugin FlutterlocalnotificationsPlugin =
FlutterlocalnotificationsPlugin();
void main() async {
WidgetsFlutterBinding.ensureInitialized();
int alarmId = 1;
await AndroidAlarmManager.initialize();
AndroidAlarmManager.periodic(Duration(seconds: 6),alarmId,notification);
runApp(MyApp());
}
Future<void> notification()async{
MyNotification myNotification = MyNotification();
await myNotification.notificationInit();
}
解决方法
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
void main() async {
WidgetsFlutterBinding.ensureInitialized();
int alarmId = 1;
await AndroidAlarmManager.initialize();
AndroidAlarmManager.periodic(Duration(seconds: 6),alarmId,notification);
runApp(MyApp());
}
static notification()async{
MyNotification myNotification = MyNotification();
await myNotification.notificationInit();
}
通知功能应该是静态的或顶级的