The Google Play game services API should be tied to an Activity's lifecycle, not a Fragment's lifecycle. If your game logic is in a Fragment, you can implement onActivityResult on the Activity and call your Fragment from there. Take a look at our Type A Number Challenge sample, which, apart from being a highly exciting and addictive game</sarcasm>, demonstrates how to deal with Fragments. Each screen in Type A Number is a fragment, and they communicate with the Activity as needed.
In this particular case, all the interaction with the games API is made by the Activity. However, you could just as well make the Activity hand the GamesClient
object to the Fragment so that it could implement its own logic.
In all cases, remember not to keep a persistent reference to GamesClient
in the Fragment for longer than you need. It's probably best to query it from the Activity
(via an interface, for instance) whenever you need it. This is to prevent it from leaking during the Activity's lifecycle.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…