в проекте, над которым я работал, есть использование Broadcast receivers
. Теперь эти получатели зарегистрированы в Manifest
, а также есть такой метод:
private static void enableComponent(Context context, Class<?> component) {
ComponentName connectionReceiverComponent = new ComponentName(context, component);
context.getPackageManager().setComponentEnabledSetting(connectionReceiverComponent, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}
Я немного запутался, потому что с Android 8
мы не можем зарегистрировать получателей в Manifest
больше, вместо этого мы должны использовать регистрацию во время выполнения, используя context.registerReceiver()
, таким образом, нет необходимости даже помещать получателей в манифест. И все же регистрация, которая использует ComponentName
, все еще работает на Android 8
и Android 9
. Не могли бы вы объяснить, в чем разница между этими двумя методами, и почему он работает и Android 8
и далее?