Проверка, пришел ли пользователь из намерения

Мне интересно, как я могу выполнить проверку, было ли действие начато с намерением.

Что я пробовал:

Я попытался проверить, был ли объект нулевым, но из-за моей настройки я не могу это проверить. Я также пробовал работать с кодом, но это тоже не удалось.

Мой код:

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("Title", one);
intent.putExtra("Description", two);

/////////////////////////

Intent intent = getIntent();

String title = intent.getStringExtra("Title");
String description = intent.getStringExtra("Description");

Большое спасибо!

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

Pawel 08.05.2018 00:53

Спасибо за ваш ответ. Я не знал об этом, спасибо, что сказали мне. Как узнать, был ли он запущен с намерением по умолчанию, а не с пользовательским? Большое спасибо, Павел!

Blake B. 08.05.2018 01:01

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

Pawel 08.05.2018 01:29

Если вы хотите узнать, запускается ли ваш Activity из программы запуска, проверьте этот getIntent().getAction() == Intent.ACTION_MAIN. Я считаю, что вы установили IntentFilter своей основной деятельности, чтобы включить <action android:name = "android.intent.action.MAIN" /> в AndroidManifest

Tam Huynh 08.05.2018 09:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
79
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

просто замените эту строку.

Намерение намерения = getIntent ();

К

Намерение намерения = getIntent (). GetExtra ();

вы забыли добавить .getExtra ().

Ответ принят как подходящий

Все действия начинаются с намерения,

Но мы можем проверить, есть ли у Intent детали в комплекте или нет? как в вашем случае -

            Intent intent = getIntent();

            if ( intent!= null && intent.getExtras() != null
                    && !intent.getExtras().getString("Title").equals("")
                    && !intent.getExtras().getString("Description").equals("") ) {

                // Activity started with sending title & description

            }
            else {
                // Activity started without sending title & description
            }

Другие вопросы по теме