我正在使用 google 提供的 GameHelper 类进行...游戏:
每次调用 onStart() 时,实现都会尝试重新连接,弹出一个模态进度窗口。当 onStop() 被调用时,连接被关闭。
这意味着每当用户启动应用程序,或导航到另一个活动并返回到我们的主活动时,他们都会弹出一个模态进度对话框。
有没有人找到使用谷歌提供的代码更优雅地做到这一点的方法?我认为只需向一侧呈现一条小消息就足够了,例如“正在登录...”,而不是在登录完成之前阻止用户。让这个库在应用程序级别而不是活动级别工作也很好 - 现在如果您不希望 onStop() 方法断开连接,则必须将整个应用程序填充到一个活动中。
谢谢
- - - - - - - - - 更新 - - - - - - - - -
我只是从 BaseGameActivity 扩展而来,它调用 GameHelper。这是 onStop() 在 GameHelper.java 中的样子:
/** Call this method from your Activity's onStop(). */
public void onStop() {
debugLog("onStop: disconnecting clients.");
// disconnect the clients -- this is very important (prevents resource
// leaks!)
killConnections(CLIENT_ALL);
...
因此,当我的活动(恢复活动或再次启动应用程序)对 onStart() 进行相应调用时,它必须再次通过连接过程:
最终会弹出进度对话框。当然,这只发生在您之前登录过的情况下。
没有其他人看到吗?进度对话框在消失之前只弹出一瞬间。这是我的活动:
public class ActivityMain extends BaseGameActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
enableDebugLog(true, "###");
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
beginUserInitiatedSignIn();
}
};
}
@Override
public void onSignInFailed() {
Log.e("###", "onSignInSucceeded()…");
}
@Override
public void onSignInSucceeded() {
Log.e("###", "onSignInSucceeded()…");
}
}