Есть ли способ захвата/перехвата Intents приложения во время выполнения без изменения рамки Android? Изменение рамки Android может потребовать слишком много работы. Пожалуйста, помогите мне.
Захват/перехват намерений Android во время выполнения
Ответ 1
Чтобы просмотреть Intents, как они происходят, запустите logcat в оболочке и отфильтруйте его до всего Intents, как это:
adb logcat | fgrep -i намерение
(Вы также можете добавить фильтр только для Intents вашего приложения, но это исключит Intent, отправленный в ваше приложение системой и другими приложениями.)
Это должно показать намерения, такие как
I/ActivityManager (585): начало действия: намерение {action = android.intent.action...}
Чтобы увидеть общесистемные намерения, попробуйте приложение Intent Intercept.
Чтобы увидеть все намерения, отправленные на ваши собственные классы, затем
- В каждом BroadcastReceiver переопределите onReceive (контекстный контекст, намерение намерения).
- В каждом действии вызывайте getIntent(), чтобы получить намерение, которое запустило действие.
- В каждой службе переопределите onStartCommand (намерение намерения, флаги int, int startId), чтобы получить намерение, запустившее службу.
Для получения информации обо всех стандартных действиях Intent см. Intent.