Нажмите уведомление, чтобы открыть конкретную деятельность - PullRequest
0 голосов
/ 01 ноября 2018

Рассмотрим 3 вида деятельности:
(A) Вход в систему (основной лаунчер)
(B) Основная деятельность
(С) Удельная активность

После того, как пользователи вошли в систему (A), они получат доступ к (B), а также, и ТОЛЬКО из (B), они смогут получить доступ к (C).

Теперь каждый раз, когда приложение открывается, оно сначала запускается (A), а затем (B).

Я хочу сделать push-уведомление, когда при нажатии он может получить доступ к (C), но сначала должен начать (B).

Я использую Xamarin.Android + Appcenter Push Notification

Я могу получать уведомления, когда мое приложение находится на переднем и заднем плане.

Моя проблема заключается в том, что когда мое приложение находится в фоновом режиме, нажатие на полученные уведомления в строке состояния вызывает его повторный запуск, начиная с (A).

Мне нужна помощь с пропуском (A), поскольку пользователь уже вошел в систему, открывает (B) и ТО открывает (C)

Есть идеи? Надеюсь, это не слишком смущает вас, ребята.

Я также пытался установить launchMode = singleInstance в (A) и (B), но он все еще перезапускает приложение

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Вы можете добиться этого, отправив название деятельности или какое-либо значение, чтобы выбрать свою деятельность. В зависимости от значения, которое вы отправляете, вы можете запускать действие, а также добавлять действие в backstack всякий раз, когда вы возвращаетесь к уведомленной активности, появляется страница в backstack.

Мне всегда так нравится, надеюсь, это сработает для вас.

0 голосов
/ 01 ноября 2018

Вы не можете динамически изменять активность программы запуска, но есть несколько способов, которые вы можете попробовать:

Создайте прозрачное действие и сделайте его активностью Launcher:

<activity
android:name=".ActivityLauncher"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" >
<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

И выберите следующее действие в onCreate()

if ( logged() ) {
   intent = new Intent(this,ActivityB.class);
} else {
   intent = new Intent(this,ActivityA.class);
}
startActivity(intent);
finish();
...