Как определить, вызвано ли мое приложение другим - PullRequest
0 голосов
/ 21 мая 2018

У меня есть два входа в мое приложение: из меню и с помощью Intent.Во втором случае мне нужно вернуть некоторое значение EXTRA_OUTPUT по

setResult(Activity.RESULT_OK, myIntentWithData)
finish()

, поэтому мне нужно определить, было ли вызвано мое приложение другим (завершите в этом случае или продолжите работу в противном случае)

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Если ваша деятельность была вызвана с использованием startActivityForResult(), вы можете использовать метод getCallingActivity() в вашем Activity.Он вернет ComponentName активности, с которой вы начали (или null , если ваша деятельность не была начата методом startActivityForResult()).Тогда вы можете получить getCallingActivity().getPackageName() или getCallingActivity().getClassName().

Подробнее здесь getCallingActivity , https://stackoverflow.com/a/5336612/3569545

0 голосов
/ 21 мая 2018

Используйте метод getIntent () , чтобы получить намерение, послужившее причиной начала вашей деятельности.

Тогда, если оно было запущено из меню приложений, намерение будет иметь действие MAIN.

val intent = getIntent();

if (intent.getAction() != "android.intent.action.MAIN") {
   setResult(Activity.RESULT_OK, myIntentWithData)
   finish()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...