андроида страницы разработчика для Broadcasts сказать о радиовещательных приемников и их приема передач:Действительно ли unregisterReceiver требуется для широковещательного приемника Android на базе контекста?
Контекст зарегистрированных приемников принимать широковещательные до тех пор, как их регистрирующего контексте является действительным. Например, если вы зарегистрировали в контексте контекст активности, вы получаете широковещательные передачи, пока активность не не уничтожена.
Он также говорит, что это:
Помните о том, где вы регистрации и отмены регистрации ресивера для Например, если зарегистрировать приемник в OnCreate (Bundle), используя контекст активность, вы должны отмените регистрацию в onDestroy(), чтобы предотвратить утечки приемника из контекста активности.
Для меня это означает, что если вы зарегистрировать приемник в контексте деятельности, но не отменить ее, когда эта деятельность будет уничтожен, вы не будете больше получать широковещательные, но вы все равно будет «течь» приемник. Это правильно?
Причина, почему я хочу знать, это именно то, что я хочу, чтобы обернуть основе контекста на широковещательный приемник в объекте, и я хотел бы интерфейс к этому объекту, чтобы быть похожим на это:
class DoesManyThings {
DoesManyThings(Context context) {
context.registerReceiver(...);
}
}
Я создам этот объект в методе onCreate
. Но если я это сделаю, я не буду знать, когда нужно отменить регистрацию получателя, и мне придется добавить явный метод, например void cleanup()
, который я должен позвонить по номеру onDestroy
. Я хотел бы знать, должен ли я делать эту явную очистку.