Flutter 应用程序关闭时,颤振隔离不显示通知
当应用程序被关闭时,使用颤振隔离软件包的颤振隔离不会显示通知 尝试将隔离包与dart:isolate一起使用,但无效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
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,您可以运行一个在最短时间后生成的后台线程,但无法保证该线程何时运行。您可以根据苹果的决定,以音频或基于位置的方式运行应用程序,这将允许后台线程连续运行。您是否找到了解决方案?