У меня есть простая задача - активировать приложение с нажатием на определенный вид деятельности (а не на начальной активности)«умный» активация Android от нажимной уведомления
визуализации У меня есть 3 мероприятия в приложении:
- А (всплеск)
- В (список пунктов)
- С (отдельные детали пункт)
Некоторые предварительно requireme nts:
- С нажимом я получаю идентификатор элемента для выбора.
- На всплеск я заставляю аутентификацию.
- Одно из условий - я не мог переместить аутентификацию, скажем, другому действию или службе приложения, например.
Теперь я мог бы создать несколько заявлений. Когда я нажимаю на толчок, чтобы активировать приложение:
- Когда толчок прибыл PushIntentService генерирует уведомление, которое задает идентификатор товара в намерениях статистов Если приложение было прекращено, я должен запустить приложение от активности A (принудительной аутентификации)
- Если приложение было фоном (работает в фоновом режиме), я должен повторно активировать его в том же месте (чтобы пропустить повторную аутентификацию)
- После того, как приложение активировано, я перейду к Activity C с идентификатором элемента, извлеченным из дополнительные услуги.
Прямо сейчас я использую следующий код для генерации уведомления (пункт 1, Xamarin.Android синтаксис):
var resultIntent = new Intent(Application.Context, typeof(SplashScreen));
resultIntent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
if (extras.ContainsKey("ItemId"))
{
var itemId = extras["ItemId"];
resultIntent.PutExtra("ItemId", itemId);
}
var resultPendingIntent = PendingIntent.GetActivity(Application.Context, 0, resultIntent, 0);
builder.SetContentIntent(resultPendingIntent);
var notification = builder.Build();
Это уведомление работает абсолютно нормально во всех случаях, но я вижу здесь один вопрос , Я запускаю приложение с самого начала каждый раз, когда я нажимаю на уведомление. Что мне нужно, когда приложение основано на мне. Мне нужно просто его активировать (например, iOS) и перейти к требуемой странице (ускорить активацию и избежать повторной аутентификации).
Как я могу достичь этого и изменить код выше?
согласно моему мнению, вам нужно использовать флаг для этого, я имею в виду, когда ваше приложение открыто, тогда сделайте это правдой, когда приложение закрыто, сделайте его ложным и сохраните этот флаг в общих предпочтениях, поэтому, когда вы получаете уведомление, просто проверьте, что такое значение из флага, если его true, то пропустите шаг, если false, а затем выполните для проверки подлинности его очень простую логику, надеюсь, что это сработает для вас –
, к сожалению, мне нужно принять решение, не проверяя, запущено ли приложение. Потому что он может быть открыт, когда мы генерируем это уведомление, и он может быть закрыт после того, как мы сгенерировали и до того, как мы открыли приложение. –