Мое приложение вызывает уведомления. Нажав на уведомление, приложение нужно запустить или перенести на передний план. Вот цель для уведомления:Android - Определите, запущено или запущено приложение, нажмите
Intent launch_intent = new Intent("android.intent.action.MAIN");
launch_intent.setComponent(new ComponentName("com.example.helloworld","com.example.helloworld.MainActivity"));
launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
launch_intent.addCategory(Intent.CATEGORY_LAUNCHER);
launch_intent.putExtra("some_data", "value");
И в моем приложении я хочу, чтобы определить, является ли он запущен или на передний план уведомлением щелчком, поэтому я использую putExtra там. Затем в MainActivity onResume я проверяю данные намерения. Это отлично работает, приложение запускается нажатием уведомлений.
Однако, если приложение было перенесено на передний план с помощью уведомления, нажмите, в MainActivity onResume нет данных о намерениях.
Я думаю, что причина такова: MainActivity - это основная активность, и это заставка. При добавлении приложения на передний план может быть любое количество действий. И когда он выведен на фронт, я хочу сохранить свое состояние.
Каков правильный способ сделать это?
Проверить в 'onNewIntent()' метода. – Rohit5k2
Но я не использую flag_activity_single_top. Когда приложение выведено на передний план, я хочу сохранить его состояние. – Shawn