Начать активность с Deeplink и на спине нажмите возобновить с последней запущенной активности - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю с глубокими ссылками в моем приложении.Если щелкнуть ссылку в сообщении электронной почты, в приложении откроется соответствующая операция.При обратном нажатии он либо возвращается к электронной почте, либо домой (до целевых флагов, которые я использую)Мне нужно, чтобы он вернулся к последнему активному действию (если приложение использовалось до нажатия на ссылку в электронном письме) или (в противном случае) для перехода к первому действию, чтобы перезапустить приложение.

ДляПроясните: пользователь включен активность C .По электронной почте приходит уведомление, проверяет его и нажимает на ссылку внутри.Это открывает активность E .Здесь, если пользователь снова нажал, я хочу завершить текущее задание и возобновить действие C - если задание действия C не было убито системой.Если он убит, перейдите к операции A .

Без флагов намерений, он создаст новую задачу (второй экземпляр приложения) и при повторном нажатии вернется к почтовому клиенту.С флагом NEW_TASK запускаются новые задачи.Если я использую флаг CLEAR_TASK с этим, при повторном нажатии он возвращается домой.

Манифест

<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="https"
                    android:host="www.mysite.com"
                    android:pathPattern="/mypath/*" />
</intent-filter>

FirstActivity

if(getIntent().getData().toString().contains("keyword")){
       //intent.setFlags(...);
       intent.putExtra("myextra", getIntent().getData().toString());
   }
    startActivity(intent);
    finish();

EmailResultActivity

 String data = getIntent().getExtras().getString("myextra");

1 Ответ

0 голосов
/ 04 апреля 2019

Для достижения этой цели вам нужно работать с глубокими ссылками из обычной деятельности. (Например: если ваше приложение имеет общую активность, скажем, XYZ. Тогда каждая глубокая ссылка должна переходить в активность XYZ, а затем в соответствии с параметрами Deep-Link, вы должны перейти на соответствующий экран) Также вам нужно сделать XYZ как singleTask.

...