Нормально ли выполнение функции Flutter main() сразу после получения уведомления Firebase на панели системных уведомлениAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Нормально ли выполнение функции Flutter main() сразу после получения уведомления Firebase на панели системных уведомлени

Сообщение Anonymous »

нормально ли, что функция Flutter main() выполняется сразу после получения уведомления Firebase на панели системных уведомлений?
Я тестирую Android 15 на устройстве Pixel.
Вот что я сделал:
  • Я закрыл свое приложение и удалил его из списка недавних.
  • Отправил тестовое уведомление с консоли Firebase с заголовком, текстом и текстом уведомления данные.
  • Уведомление приходит на панель задач. Я не открывал его.
  • Вызывается функция main() Flutter, которая вызывает мою функцию runApp().
Итак, на данный момент все приложение с его пользовательским интерфейсом открыто в фоновом режиме.
Вот моя функция main():

Код: Выделить всё

void main() async {
try {
print("Entered main()");
print("FLUTTER LOG: MAIN UI ISOLATE STARTED. Starting App.");

WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
print("main() -> WidgetsBinding ensureInitialized");

FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
print("main() -> FlutterNativeSplash.preserve");

// SDKs and services initialized here..
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

print("main() -> calling runApp(...)");
runApp(const KApp());
} catch (error, stackTrace) {
print("main() -> error:$error");
runApp(KFallbackApp(error: error, stackTrace: stackTrace));
}
}
Я также зарегистрировался в своем приложении Flutter.

Код: Выделить всё

@pragma('vm:entry-point')
Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// https://firebase.google.com/docs/cloud-messaging/flutter/receive#apple_platforms_and_android
print("FLUTTER LOG: BACKGROUND HANDLER ISOLATE STARTED");

try {
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);

// TODO: handle background firebase message
} catch (error, stacktrace) {
// print("Firebase Messaging error: $error");
}
}
Мои журналы в logcat при получении уведомления:

Код: Выделить всё

I  Entered main()
I  FLUTTER LOG: MAIN UI ISOLATE STARTED. Starting App.
I  FLUTTER LOG: BACKGROUND HANDLER ISOLATE STARTED
I  main() -> WidgetsBinding ensureInitialized
I  main() -> FlutterNativeSplash.preserve
I  main() -> calling runApp(...)
Итак, приложение просто полностью загружается в фоновом режиме. Он недоступен на странице «Недавние» на Android. И если я не открою уведомление, мое приложение просто продолжит работать в фоновом режиме?
Это нормально?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ebase-noti
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»