首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter -如何在应用程序处于后台的特定时间执行函数?

Flutter -如何在应用程序处于后台的特定时间执行函数?
EN

Stack Overflow用户
提问于 2021-05-13 22:23:07
回答 1查看 420关注 0票数 0

我想要在应用程序关闭的特定时间执行函数。该函数将显示一条通知。

这是我想要执行的函数:

代码语言:javascript
运行
复制
Future<void> dailyNotification() async {
DateTime now= DateTime.now();
Time reviewTime = Time(13, 02, 20 );
DateTime notTime = DateTime(now.year, now.month, now.day, reviewTime.hour, reviewTime.minute, reviewTime.second);
var androidChannelSpecifics = AndroidNotificationDetails(
  'CHANNEL_ID 2',
  'CHANNEL_NAME 2',
  "CHANNEL_DESCRIPTION 2",
  importance: Importance.max,
  priority: Priority.high,
 );
 var iosChannelSpecifics = IOSNotificationDetails();
 var platformChannelSpecifics =
 NotificationDetails(android: androidChannelSpecifics, iOS: iosChannelSpecifics);
 await flutterLocalNotificationsPlugin.zonedSchedule(
   2,
   'Test Title at ${reviewTime.hour}:${reviewTime.minute}.${reviewTime.second}',
   'Test Body', //null
    notTime,
    platformChannelSpecifics,
    payload: 'Test Payload',
   );
 }

编辑:

根据Tirth Patel在帖子中的建议,我像这样实现了它:

代码语言:javascript
运行
复制
void callbackDispatcher() {
 Workmanager().executeTask((taskName, inputData) async {
notificationPlugin.showDailyAtTime();
return Future.value(true);
 });
}

void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Workmanager().initialize(callbackDispatcher);
Workmanager().registerPeriodicTask(
  "1",
  "simplePeriodicTask",
  frequency: Duration(minutes: 15),
);
runApp(MyApp());
}

但是,它仍然不起作用。我正在使用flutter本地通知包。

我还不能解决这个问题。

请帮我弄一下这个。

感谢您的回复。

EN

回答 1

Stack Overflow用户

发布于 2021-05-16 13:30:37

一些Android设备制造公司不允许android手机在后台运行,我相信你的设备可能就是其中之一。

解决方案:我们需要在应用程序的设置中启用自动启动,以保持服务运行。(App info -> Auto Start -> Enable)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67520914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档