Pergunta

eu uso SDWebImage no meu aplicativo para carregar e cache imagens da web. Funciona como um charme, mas o único problema é que sempre que eu saio do meu aplicativo, mesmo momentaneamente, o cache da imagem é liberado e todas as imagens precisam ser baixadas novamente. Isso é especialmente um problema quando a conexão com a Internet é lenta. Eu gostaria que as imagens fossem mantidas quando voltar ao aplicativo. Alguém sabe como alcançar isso?

Foi útil?

Solução

Vá para sdimagecache.m e procure o método - (id) initWithNamespace: (NSString *) lá você encontrará esse código:

// Subscribe to app events
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(clearMemory)
                                                 name:UIApplicationDidReceiveMemoryWarningNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(cleanDisk)
                                                 name:UIApplicationWillTerminateNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(backgroundCleanDisk)
                                                 name:UIApplicationDidEnterBackgroundNotification
                                               object:nil];

Sinta -se à vontade para comentar ou mudar qualquer coisa, se quiser. Eu faria uma opção para desligar essas linhas de código.

Outras dicas

Certifique -se de não definir o maxCacheSize do [SDImageCache sharedImageCache], se estiver definido quando o aplicativo for para o plano de fundo, ele limpará os arquivos de cache para ajustar o maxCacheSize.

dentro cleanDisk Método, você pode ver que há uma verificação antes de remover arquivos

if (self.maxCacheSize > 0 && currentCacheSize > self.maxCacheSize)
{
// ...
}

então se maxCacheSize não está definido, ele não fará nada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top