> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Alterações de dispositivo ativo do Game Saves

> Trate as alterações de dispositivo ativo do PlayFab Game Saves para evitar a perda de progresso quando os jogadores trocam de dispositivo no meio de uma sessão em várias plataformas.

## Tratando alterações de dispositivo ativo

Quando um jogador troca de dispositivo no meio de uma sessão, é importante evitar que ele perca progresso acidentalmente ao jogar em vários dispositivos simultaneamente.

### O cenário do problema

1. **O jogador começa no Dispositivo A**: começa a jogar, e esse se torna o dispositivo "ativo"
2. **O jogador troca para o Dispositivo B**: entra e escolhe "Sync Last Saved Data"
3. **O Dispositivo B se torna ativo**: o Dispositivo A não é mais o dispositivo ativo, mas talvez não saiba disso
4. **Risco de perda de progresso**: o jogador pode continuar jogando no Dispositivo A, criando estados de salvamento conflitantes

### A solução: retornos de chamada de dispositivo ativo

Escute as alterações de dispositivo ativo e trate a transição de forma adequada:

```cpp theme={null}
// Set up the active device changed callback during initialization
hr = PFGameSaveFilesSetActiveDeviceChangedCallback(
    optionalTaskQueue,                    // Use nullptr for immediate callback
    MyActiveDeviceChangedCallback,        // Your callback function
    contextPtr);                          // Optional context for your callback
```

### Exemplo de implementação do retorno de chamada

```cpp theme={null}
void MyActiveDeviceChangedCallback(void* context)
{
    // The current device is no longer active for Game Saves
    
    // 1. Pause the game immediately
    
    // 2. Inform the player what happened
    // with a message such as:
    // "Your game progress is being continued on another device."
    // "Returning to main menu to prevent data loss."
    
    // 3. Return to a safe state (main menu)
    
    // 4. Re-initialize Game Saves system when ready to play again
    // (The player will need to sync again from the main menu)
}
```

### Exceção específica do XBOX

Se o seu jogo só fizer o login usando o recurso **Single Point of Presence (SPOP)** do XBOX, esse cenário será evitado automaticamente. O SPOP garante que um usuário só possa estar conectado em um dispositivo XBOX por vez.

### Práticas recomendadas

* **Sempre implemente este retorno de chamada** em jogos multiplataforma
* **Pause a jogabilidade imediatamente** quando o retorno de chamada for disparado
* **Explique claramente aos jogadores** por que eles estão sendo levados de volta ao menu
* **Facilite o retorno** levando ao menu principal em vez de fechar o jogo


## Related topics

- [Início rápido do Game Saves](/pt-BR/services/playfab/player-progression/game-saves/quickstart.md)
- [Retornos de chamada de interface do Game Saves](/pt-BR/services/playfab/player-progression/game-saves/ui-callbacks.md)
- [Perguntas frequentes sobre tratamento de erros do Game Saves](/pt-BR/services/playfab/player-progression/game-saves/error-handling-faq.md)
- [Modo offline do Game Saves](/pt-BR/services/playfab/player-progression/game-saves/offline.md)
- [Ferramentas do Game Saves](/pt-BR/build/core-features/common/game-save/game-saves-tools.md)
