Запуск приложения с помощью намерения, а затем нажатие кнопки «Назад» также закрывает родительское приложение

#android #flutter #dart

Вопрос:

Я запускаю приложение gmail, когда пользователь нажимает кнопку. Вот мой код для открытия приложения gmail на Android, которое я использую android_intent в пакете.

 const intent = AndroidIntent(
                            action: 'android.intent.action.MAIN',
                            category: 'android.intent.category.APP_EMAIL',
                          );
                          intent.launch().catchError((e) {
                            context.showMessageDialog(e.toString());
                          });
 

Он gmail правильно открывает приложение, и теперь, когда я нажимаю кнопку «Назад» в Android, оно закрывается gmail так же, как и мое приложение. Я не хочу, чтобы он закрывал мое приложение. Я хочу gmail открыться как другое приложение. Я не могу использовать url_launcher пакет, так как он используется для отправки электронной почты. Мой вариант использования-просто открыть приложение электронной почты пользователя, чтобы пользователь мог проверить электронную почту, которую я отправил со своего сервера во время регистрации.

Комментарии:

1. Есть ли какая-либо ошибка в logcat?

2. @Генри Нет, ошибки нет. Он правильно открывает gmail. Но когда я нажимаю кнопку «Назад», когда я нахожусь в gmail, это также закрывает мое приложение

3. Вы включили опцию «Не сохранять действия» в настройках отладки устройства?

4. @GiuseppeGiacoppo Это не включено

Ответ №1:

Это работает для меня:

 private fun openGmail() {
    val intent = requireContext().packageManager.getLaunchIntentForPackage("com.google.android.gm") //"leanback" version is for TV

    startActivity(intent)
}
 

Комментарии:

1. это похоже на код котлина. Я думаю, что оператору нужен код дротика/флаттера вместо этого.

Ответ №2:

В AndroidManifest.xml изменении android:launchMode="singleTop" на android:launchMode="singleInstance"