#java #android #kotlin #dart #flutter
#java — язык #Android #kotlin #дротик #трепетать #java #dart #flutter
Вопрос:
В моем приложении Flutter вместо того, чтобы загружать все приложение на экран, я хочу выполнить небольшую функцию Dart в фоновом режиме, как только приложение получит сообщение Автозапуск при BOOT_COMPLETED.
Приложение должно загружаться нормально, когда пользователь запускает его из лаунчера, однако, когда приложение получает сообщение Autostart on BOOT_COMPLETED, оно должно просто запустить небольшую функцию dart в фоновом режиме без фактической загрузки приложения на экране.
До сих пор я использовал код из следующего git >> https://github.com/oatpano/flutter_boot_startup
Однако этот код запустит все приложение на экране.
Я не являюсь разработчиком Android, поэтому у меня возникают проблемы с пониманием того, что именно происходит в файле манифеста.
Итак, в следующем примере я хотел бы выполнить backgroundfunction () только тогда, когда приложение получит сообщение Автозапуск при BOOT_COMPLETED
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
void backgroundfunction(){
print("Hello world");
}
Комментарии:
1. Насколько я понимаю, что репозиторий, его единственная цель — запустить действие при запуске. Так что то, что вы видите, в значительной степени ожидаемо. Почему именно вы хотите выполнить код после загрузки? Если вы хотите запускать код каждые несколько минут, возможно, плагин background_fetch мог бы быть полезен: github.com/transistorsoft/flutter_background_fetch у него есть аналогичная функция, которая допускает безголовый режим: github.com/transistorsoft/flutter_background_fetch/blob/master /…
2. @herbert спасибо за ваше время. Я могу периодически запускать код в фоновом режиме с помощью flutter_background_fetch. Пакет потрясающий, и он будет выполнять функцию, даже если приложение завершено пользователем и его больше нет в памяти. Однако, если пользователь перезагружает устройство, периодическое фоновое выполнение прекращается. Я мог бы использовать flutter_background_fetch, если бы он выполнял функцию даже после загрузки.
3. это так, смотрите мой ответ.
Ответ №1:
Вы можете использовать плагин background_fetch и убедиться, что:
- Вы следуете документации по безголовому режиму
- Включить
startOnBoot: true
с помощью во время настройки службы, которая будет либо использовать приемник BOOT_COMPLETED на Android < 21, либо сохраненный JobService на Android >= 21