Ответ 1
@Выберите шанс сделать Cha. То, что вы говорите, совершенно прав. RS был разработан с учетом этой конкретной потребности: управление сетевыми запросами и жизненными циклами деятельности.
@craigrs84. В основном, что происходит с RS, заключается в том, что при обработке запроса его слушатели будут вызваны до тех пор, пока активна соответствующая активность. Если активность больше не активна, все ее слушатели отключены от RS, и они не будут уведомлены.
Основная цель RS заключается в том, чтобы убедиться, что утечка памяти отсутствует: ваша деятельность, если она должна умереть, умрет и будет собрана мусор, RS не содержит никакой твердой ссылки на нее, которая предотвратила сбор мусора, Это действительно основная идея RoboSpice.
Если вы хотите, чтобы новый экземпляр вашей активности был подгружен в ожидающий запрос (например, вы выполняете запрос, затем поворачиваете устройство, а затем получаете новый экземпляр своей активности и хотите, чтобы новый экземпляр получил результат запроса, выполненного предыдущим экземпляром), что возможно с помощью RS.
В таком случае используйте метод spiceManager.addListenerIfPending
в начале, сразу после вызова spiceManager.start(..). Это не будет выполнять новый запрос, но повторно подключите нового прослушивателя к ожидающему запросу. Если запрос не ожидается, он ничего не сделает.