在Flutter中的预定时间显示推送通知

问题描述 投票:0回答:1

我已经在下面编写了代码(可完全运行),当我运行该应用程序时,会显示一条通知,但AlarmManager无法按预期工作。正如我告诉他的那样,它不会每分钟显示一条通知...我该如何解决?提前Thx并使用<3

进行编码
class _MyHomePageState extends State<MyHomePage>
{
  FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
  var initializationSettings;
  var initializationSettingsAndroid;

  @override
  Widget build(BuildContext context)
  {
    initializationSettingsAndroid = new AndroidInitializationSettings("@mipmap/ic_launcher");
    initializationSettings = InitializationSettings(initializationSettingsAndroid, null);
    flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: onSelectNotification);

    createTimer();

    return Scaffold
    (
      appBar: AppBar
      (
        title: Text(widget.title),
      ),
      body: Container()
    );
  }

  void createTimer() async
  {
    final int alarmID = 0;

    showNotificationWithDefaultSound();

    await AndroidAlarmManager.initialize();
    await AndroidAlarmManager.periodic(const Duration(minutes: 1), alarmID, showNotificationWithDefaultSound);
  }

  Future showNotificationWithDefaultSound() async
  {
    var androidPlatformChannelSpecifics = new AndroidNotificationDetails('idNotification', 'AppName', 'Description', importance: Importance.Max, priority: Priority.High);
    var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
    var platformChannelSpecifics = new NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    await flutterLocalNotificationsPlugin.show(0, 'New Notification', 'This is the text of the notification', platformChannelSpecifics, payload: 'Hi guys and girls!!');
  }

  Future onSelectNotification(String payload) async
  {
    showDialog(context: context, builder: (_)
    {
      return new AlertDialog(title: Text("PayLoad"), content: Text("Payload : $payload"));
    });
  }
}
android flutter alarmmanager
1个回答
-1
投票

最后我找到了解决方案...这是完整的示例。

https://github.com/Anon-65535/SimpleBackgroundTimer

© www.soinside.com 2019 - 2024. All rights reserved.