Как записать сообщения Log.d из другого процесса того же приложения?

Мне нужно создать службу, которая должна запускаться в отдельном процессе, чтобы она продолжала работать даже после закрытия MainActivity. И для этого я использую android:process = ":myprocess" в манифесте. Если я не вставлю это в манифест проекта и не запущу приложение, я увижу сообщения от службы, но когда я запускаю его в другом процессе, сообщения от Log.d больше не отображаются. Есть ли способ заставить это работать?

Что не так с моим вопросом, за который вы проголосовали?

Marus Gradinaru 03.08.2024 17:23

Как вы ищете сообщения? Если вы используете инструмент Logcat Android Studio, уверены ли вы, что ваши фильтры не вызывают проблем?

CommonsWare 05.08.2024 17:22

@CommonsWare Это проект BeeWare, и в нем есть инструмент briefcase, который создает и запускает приложение на моем телефоне через USB-кабель. Когда он запускается, я вижу на экране ноутбука много отладочного текста самых разных цветов из разных источников. И он также показывает текст отладки из моей службы переднего плана, но только тогда, когда я настраиваю службу на запуск в том же процессе, что и MainActivity.

Marus Gradinaru 05.08.2024 19:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Портфель будет отображать только журналы основного процесса вашего приложения. Чтобы увидеть другой процесс, вы можете использовать представление Logcat в Android Studio или команду adb logcat.

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

Решение Android о том, когда отключить службу, определяется другими факторами, о которых вы уже узнали в другом своем вопросе. Я не думаю, что вынесение этого в отдельный процесс будет иметь большое значение.

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

И нет способа заставить его показывать журналы других процессов приложения?

Marus Gradinaru 07.08.2024 09:29

Не в портфеле, но вы также можете использовать представление Logcat в Android Studio или команду adb logcat.

mhsmith 07.08.2024 14:38

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