Мне интересно, как я могу выполнить проверку, было ли действие начато с намерением.
Что я пробовал:
Я попытался проверить, был ли объект нулевым, но из-за моей настройки я не могу это проверить. Я также пробовал работать с кодом, но это тоже не удалось.
Мой код:
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");
Большое спасибо!
Спасибо за ваш ответ. Я не знал об этом, спасибо, что сказали мне. Как узнать, был ли он запущен с намерением по умолчанию, а не с пользовательским? Большое спасибо, Павел!
Вы должны проверить, установлены ли дополнительные функции, которые вы предоставляете намерению, запускающему действие. Другие приложения не должны предоставлять никаких дополнительных услуг, что будет свидетельствовать о том, что они были запущены не вами.
Если вы хотите узнать, запускается ли ваш Activity из программы запуска, проверьте этот getIntent().getAction() == Intent.ACTION_MAIN. Я считаю, что вы установили IntentFilter своей основной деятельности, чтобы включить <action android:name = "android.intent.action.MAIN" /> в AndroidManifest




просто замените эту строку.
Намерение намерения = 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
}
Все действия запускаются с намерением - вы должны включить соответствующие дополнения или проверить, отсутствуют ли они.