Flutter 应用程序关闭时,颤振隔离不显示通知

Flutter 应用程序关闭时,颤振隔离不显示通知,flutter,notifications,local,Flutter,Notifications,Local,当应用程序被关闭时,使用颤振隔离软件包的颤振隔离不会显示通知 尝试将隔离包与dart:isolate一起使用,但无效 import 'dart:async'; import 'dart:isolate'; import 'package:flutter/material.dart'; import 'package:flutter_isolate/flutter_isolate.dart'; 'package:flutter_local_notifications/flutter_local

当应用程序被关闭时,使用颤振隔离软件包的颤振隔离不会显示通知

尝试将隔离包与dart:isolate一起使用,但无效

import 'dart:async';
import 'dart:isolate';


import 'package:flutter/material.dart';
import 'package:flutter_isolate/flutter_isolate.dart';
'package:flutter_local_notifications/flutter_local_notifications.dart';
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();

Future onSelectNotification(String payload) async {
  if (payload != null) {
    debugPrint('notification payload: ' + payload);
  }
}

  void isolated(String args) async {
    Timer.periodic(new Duration(seconds: 10), (Timer t) => print('hi!'));
    Timer.periodic(new Duration(seconds: 10), (Timer y) async
    {
      var androidPlatformChannelSpecifics = AndroidNotificationDetails(
          'your channel id', 'your channel name', 'your channel description',
          importance: Importance.Max,
          priority: Priority.High,
          ticker: 'ticker');
      var iOSPlatformChannelSpecifics = IOSNotificationDetails();
      var platformChannelSpecifics = NotificationDetails(
          androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
      await flutterLocalNotificationsPlugin.show(
          0, 'plain title', 'plain body', platformChannelSpecifics,
          payload: 'item x');
    });

}
  void main() async {

    // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project
    // If you have skipped STEP 3 then change app_icon to @mipmap/ic_launcher

    var initializationSettingsAndroid =
    new AndroidInitializationSettings('appicon');
    var initializationSettingsIOS = new IOSInitializationSettings();
    var initializationSettings = new InitializationSettings(
        initializationSettingsAndroid, initializationSettingsIOS);
    flutterLocalNotificationsPlugin.initialize(initializationSettings,
        onSelectNotification: onSelectNotification);
    isolated("hi");
  }
上面的代码是当状态类终止且不再存在时,当应用程序被终止时,系统看到的代码。如果我们可以运行上面的代码,那么当应用程序被Android和iOS中的用户杀死,并且状态类不再存在时,隔离仍然可以工作

提前谢谢


Rob.

是的,这不能单独在颤振中完成,因为分离物是由父进程产生的,当应用程序终止时,它们会被杀死

对于Android,使用在应用程序死亡后产生并持续存在的服务


对于iOS,您可以运行一个在最短时间后生成的后台线程,但无法保证该线程何时运行。您可以根据苹果的决定,以音频或基于位置的方式运行应用程序,这将允许后台线程连续运行。

您是否找到了解决方案?