Autore Topic: Google Play Services non azzera i punteggi nella leaderboard  (Letto 416 volte)

Offline Zampa

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab 2 7.0
  • Sistema operativo:
    Windows 8
Google Play Services non azzera i punteggi nella leaderboard
« il: 21 Ottobre 2014, 19:00:26 CEST »
0
Ciao,
sto utilizzando per la prima volta i Google Play Services per gestire le classifiche (leaderboards) nel mio gioco.
Seguendo le indicazioni a riguardo, utilizzo la BaseGameActivity che mette a disposizione tutte le funzioni per la connessione, l'invio dei punteggi, ecc...
La MainActivity della mia app quindi eredita da BaseGameActivity e si occupa di connettersi al servizio di Google, richiamare la leaderboard (tramite apposito pulsante), inviare il punteggio una volta terminata la partita (la GameActivity passa alla mainActivity il punteggio da inviare).
Purtroppo però a volte i punteggi non vengono azzerati e quindi mi ritrovo ad avere dei punteggi in classifica anche in giorni in cui non ho giocato!
Ho notato inoltre che in alcuni casi, all'avvio della applicazione, viene eseguito il login e viene visualizzato il messaggio di benvenuto nel Play Games, altre volte invece avvio l'applicazione, viene eseguita la onSignInSucceeded ma non viene visualizzato alcun messaggio di benvenuto (e sono convinto che di fatto l'app non sia veramente connessa!).
Ho pensato quindi che, non avvenendo un corretto ciclo di SignIn e SignOut rimangano memorizzati alcuni dati, che mi ritrovo quindi in classifica anche dopo l'azzeramento eseguito da Google alla mezzanotte PST.

Quindi vi chiedo:
- Come posso fare ad eseguire il SignOut alla chiusura della applicazione? (non alla chiusura della MainActivity)
- Ho dimenticato di gestire qualcosa della BaseGameActivity da cui eredito che quindi mi comporta questo strano comportamento?
- A qualcuno è già capitato un problema simile?

Grazie,
Nicola

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Google Play Services non azzera i punteggi nella leaderboard
« Risposta #1 il: 22 Ottobre 2014, 08:26:43 CEST »
0
Perch; vuoi signOut alla chiusura dell'applicazione? Comunque basta che lanci:

Codice (Java): [Seleziona]
signOut();
Quando vuoi tu, fa parte della BaseGameActivity.

I punteggi non vengono azzerati, semmai ci sono quelli del giorno, settimana, mese ...
I numeri contano molto di più del seme.

Offline Zampa

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab 2 7.0
  • Sistema operativo:
    Windows 8
Re:Google Play Services non azzera i punteggi nella leaderboard
« Risposta #2 il: 22 Ottobre 2014, 09:48:33 CEST »
0
Perch; vuoi signOut alla chiusura dell'applicazione? Comunque basta che lanci:

Codice (Java): [Seleziona]
signOut();
Quando vuoi tu, fa parte della BaseGameActivity.

I punteggi non vengono azzerati, semmai ci sono quelli del giorno, settimana, mese ...

Ok, so che la BaseGameActivity dispone di un metodo SignOut, ma il problema è dove richiamarlo. Se lo eseguo nella onPause o nella onStop della activity, continuo a fare un signout ogni volta che passo dalla MainActivity alla activity di gioco, e ciò non va bene! Dovrei eseguirlo alla chiusura della applicazione, ma non so come fare, visto che signOut è un metodo della activity e non globale della applicazione.

Da quanto leggo qui (https://developers.google.com/games/services/common/concepts/leaderboards?hl=it) i punteggi VENGONO azzerati:
"Daily leaderboards reset at midnight PST every day, and weekly leaderboards reset at Saturday midnight PST".

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Google Play Services non azzera i punteggi nella leaderboard
« Risposta #3 il: 22 Ottobre 2014, 11:00:56 CEST »
0
Chiama signOut nella onDestroy.
I numeri contano molto di più del seme.

Offline Zampa

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab 2 7.0
  • Sistema operativo:
    Windows 8
Re:Google Play Services non azzera i punteggi nella leaderboard
« Risposta #4 il: 22 Ottobre 2014, 11:50:34 CEST »
0
Chiama signOut nella onDestroy.

Come la onPause e la OnStop, anche la onDestroy viene richiamata quando passo dalla MainActivity alla activity di gioco, quindi non va bene.
E poi ho visto che la onDestroy non viene eseguita se l'utente preme il tasto Home.

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Google Play Services non azzera i punteggi nella leaderboard
« Risposta #5 il: 22 Ottobre 2014, 13:03:31 CEST »
0
Allora devi chiarire cosa significa "alla chiusura dell'applicazione".
I numeri contano molto di più del seme.