Возьмем, к примеру, чтобы TextToSpeech класса, чей конструктор требует аргумент типа, который контекста. Мой вопрос, в чем разница между getSystemService который не требует никакого другого аргумента, чем строковой константы и типа-литого и getApplicationContext который вы бы пройти в класс, такие как TextToSpeech?Понимание разницы между getSystemService() и getApplicationContext()
0
A
ответ
1
Одним словом,
getApplicationContext()
возвращает контекст тока приложение, работающее в выделенном процессе, в то время какgetSystemService(String name)
«возвращает дескриптор службы системного уровня по имени «, где служба на системном уровне работает в отдельном процессе и « handle » позволяет ссылаться методы обслуживания через межпроцессную связь (IPC
).
Я надеюсь, разница вы говорите, относится к модели Android
безопасности, которая, AFAIK, делится на 2 категории WRT вызова служб системного уровня, управляемые servicemanager
:
- системы- которые могут быть доступны/использованы без специального разрешения на стороне приложения/файл манифеста (например,
LAYOUT_INFLATER_SERVICE
,PackageManager
и другие); - сервисы на уровне системы, которые явно требуют определенного разрешения (с) из приложения (или его хоста
Linux
) для успешного доступа. Разрешения предоставляются физическим пользователем устройства.
Поскольку никаких конкретных разрешения не требуется, чтобы получить доступ к сервисам системного уровня 1-й категории, взаимодействие с ними может быть обернуто с дополнительным уровнем абстракции, который требует Context
в качестве параметра, чтобы получить доступ к услугам (например TextToSpeech
API).
Смежные вопросы
- 1. Понимание разницы между $ .ajax() и $ .ajax(), то
- 2. Понимание разницы между = и = ~ операторы в Баш [[]]
- 3. Понимание разницы между NSDate часов
- 4. разницы и когда использовать getApplication(), getApplicationContext(), getBaseContext() и someClass.this
- 5. Разница между getApplicationContext() и getActivity()
- 6. Разница между getApplicationContext и classname.this
- 7. Понимание разницы между самостоятельным, ссылающимися функциями отчетностью
- 8. В чем отличие между getApplicationContext() и сервисом Activity's getApplicationContext()?
- 9. Понимание разницы между EMC ECS и EMC ScaleIO
- 10. Дизайн байесовских сетей: понимание разницы между «государствами» и «узлами»
- 11. питон регулярное выражение - понимание разницы между спичкой и поиск
- 12. Hbase: Понимание разницы между smallCompactions и largeCompactions под majorCompaction
- 13. Понимание разницы между двойной цитатой и отдельной цитатой с __repr __()
- 14. Понимание разницы между htfp URLS и HDFS пути
- 15. Понимание разницы между informat и format & how is_EFIERR_ work
- 16. Понимание разницы между неблокирующими вызовами веб-сервисов и неблокирующими JDBC
- 17. разницы между @Target и @annotation
- 18. понимание MPI посылает разницы
- 19. Понимание разницы списков (Пролог)
- 20. Разница между getContext(), getApplicationContext(), getBaseContext() и "это"
- 21. Тост: Разница между «этим» и «getApplicationContext()»?
- 22. Понимание пересечения и разницы словарей в python
- 23. Понимание разницы между двумя подписями Haskell, один с использованием FORALL
- 24. понимание разницы между реализациями двух связанных списков в c
- 25. разницы между `` setTimeout` и setImmediate`
- 26. разницы между Null и Ложными
- 27. разницы между flattrs и flattrs_user_count
- 28. Разницы между dFdxFine и dFdxCoarse
- 29. разницы между 2НФОМ и НФКАМИ
- 30. разницы между Subversion и MKS
Они возвращают два разных типа объектов. –
Так getSystemService возвращает уровень абстракции, чтобы вы могли взаимодействовать с сервисом, например AudioManager? – Joseph