请参阅以下LogCat输出。在Base.OnStart()中我调用了mPlusClient.connect();现在我在ShowLog.OnStart中调用各种方法,但仅仅因为Google尚未通过身份验证,它会抛出错误" GoogleApiClient未连接"。
我应该怎么做才能改变我的设计,以便它始终连接,然后我只调用各种方法。
mainActivity.onCreateOptionsMenu called
Base.onConnectionFailed called
onClick called
onActivityResult called
Base: onConnected called. Is Google connected?true
showLog: onCreate
Base: onCreate
showLog: onCreate: is Google connected?false
showLog: onStart
Base: onStart
Base: onStart. Is Google connected?false
**showLog: onStart: is Google connected?false**
showLogsActivity.onCreateOptionsMenu called
Base: onConnected called. Is Google connected? **true**
Base: onStop
showLog: onStop
Base: onStop
我还包括下面的代码(我正在删除一些代码以保持简洁)。 这是完整的代码: http://codeviewer.org/view/code:52b6
由于 编辑1 * 建议后我将代码修改为:
Class showLog{
@Override
void onGooglePlayServicesConnected() {
if (mPlusClient.isConnected()) {
//background process to get Picasa Photo
AsynTaskGetPicasaMedia objAsyncTaskGetPicasaMedia = new AsynTaskGetPicasaMedia(getApplicationContext());
objAsyncTaskGetPicasaMedia.execute();
}
}
}
现在上课AsynTaskGetPicasaMedia
@Override
protected Boolean doInBackground(Void... params) {
final String accountName = Plus.AccountApi.getAccountName(BaseActivity.mPlusClient);
}
我仍然收到错误!
答案 0 :(得分:1)
如果您的基类实现了google play服务的回调,那么您在该基类中创建一个方法,该方法在连接时调用。
例如
@Override
public void onConnected(Bundle connectionHint) {
onGooglePlayServicesConnected();
}
public void onGooglePlayServicesConnected(){
}
扩展此基类的活动中的只会覆盖方法onGooglePlayServicesConnected()
@Override
public void onGooglePlayServicesConnected() {
//do stuff here
}