Не так много в разработке Android, но все же позвольте мне попытаться объяснить. Таким образом, в основном, контекст - это ссылка на ссылку на ресурсы вашей программы. Каждому объекту присваивается свой собственный контекст, который содержит ресурсы, необходимые для установки этого объекта. Это необходимо для создания многих объектов, а также для получения информации, идентифицирующей программу, среди прочих целей. Это делает его неоценимым для создания новых видов и видов деятельности, но его также можно использовать для других целей. См. Это Android Context для получения дополнительной информации.
В соответствии с этим pageActivity inherits context
. Таким образом, если вы находитесь в действии, вам нужно только перейти к использованию контекста. Он также содержит указатель на getBaseContext(). Иногда вам может потребоваться ссылка на него, если вам нужен весь контекст приложения, но, скорее всего, вы не захотите на какое-то время.
Существуют способы создания намерения, не требующего контекста. Но если вы хотите настроить таргетинг на определенный класс определенного пакета, то предоставление контекста для целевого пакета - это готовый способ сделать это. См. Это Context Lesson.
Как поясняется snctin в его answergetApplicationContext() offers application context
. В основном контекст приложения связан с Приложением и всегда будет одинаковым на протяжении всего жизненного цикла вашего приложения. Также см. this post.
См. Android - How to start (display) a new Activity. В соответствии с этим
startActivity(new Intent(this, ProjectsActivity.class));
предполагает текущий класс расширяет один из классов Android активность, которая дает вам доступ к методу startActivity.
Согласно Getting result from a activity, запуск другого мероприятия не обязательно должен осуществляться в одну сторону. Вы также можете начать другое действие и получить результат. Чтобы получить результат, вызовите startActivityForResult() (вместо startActivity()).
Например, ваше приложение может запустить приложение для камеры и получить полученную фотографию в результате. Или вы можете запустить приложение «Люди», чтобы пользователь мог выбрать контакт, и в результате вы получите данные о контакте. Это post поможет вам понять тот же самый лучший способ.
Надеюсь, что помогает. А также спасибо за то, что у вас был вопрос с обновлением с Android. :)
Привет, ваш ответ очень ясный и лаконичный. Тем не менее, я просто хочу быстро уточнить. Итак, всякий раз, когда я запускаю действие, активность, вызывающая startActivity(), будет правильно регистрироваться в стеке? Итак, как андроид знает, чтобы ссылаться на эту активность и регистрировать ее в стек, если я специально не передаю эту активность. – Wowzer
Система знает, какая активность находится в верхней части стека (ваша активность). И когда вы начинаете новый, он использует имя компонента для его идентификации. Даже если вы используете неявное намерение (одно с действием вместо явного имени цели), оно в конечном итоге разрешено для определенного имени компонента. –