Android: Как переопределить поведение кнопки «Назад» в запущенном приложении, чтобы вернуться к исходному приложению? - PullRequest
0 голосов
/ 06 августа 2020

Пользователи хотят, чтобы мое приложение открывало ссылки без приложений с приложением untappd. Я долго оглядывался и обнаружил, что хотя untappd не поддерживает обычные URL-адреса http, они поддерживают схему URL-адресов "untappd://beer/[beerId]".

Однако приложение untappd не сразу возвращается в мое приложение, когда нажатие кнопки возврата; требуется до двух или более нажатий, чтобы вернуть его в какое-то «домашнее состояние», после чего следующее нажатие кнопки возврата, наконец, вернется в мое приложение. После того, как он достиг этого «домашнего состояния», я могу свободно щелкать ссылки из своего приложения, и оно go вернется в мое приложение всего одним нажатием кнопки возврата (как и ожидалось), но, конечно, это длится только до тех пор, пока пользователь не использует untappd на некоторое время и меняет свое состояние.

Пользователи не обязательно будут знать о трюке с несколькими кнопками возврата и могут подумать, что им нужно нажать кнопку домой и / или выполнить поиск в открытых приложениях, чтобы вернуться в мое приложение, что было бы плохо для пользователя. По крайней мере, это был мой первый инстинкт, когда я сам его использовал.

Есть ли способ запустить приложение, гарантируя, что первое нажатие кнопки возврата в новом приложении вернется в мое приложение?

Код, который я сейчас использую для прослушивателя при нажатии:

          Intent intent = new Intent();
          intent.setAction(Intent.ACTION_VIEW);
          intent.addCategory(Intent.CATEGORY_BROWSABLE);
          intent.setData(Uri.parse(appUrlPrefix + beerId));
          PackageManager packageManager = getPackageManager();
          List<ResolveInfo> activities = packageManager.queryIntentActivities(intent,
                  PackageManager.MATCH_DEFAULT_ONLY);
          boolean isIntentSafe = activities.size() > 0;
          if (!isIntentSafe) {
              intent.setData(Uri.parse(urlPrefix + beerId));
          }
          startActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...