我正試圖在我的應用上實現谷歌登錄。我設法登錄並存儲令牌,但由於任務是異步的,我不知道它何時完成,因此我無法在其他方法中安全地使用該令牌。我怎樣才能將回調方法添加到onPostExecute
?Android:如何在獲取Google令牌的異步任務中實現回調?
下面是代碼:
@Override
public void onConnected(Bundle bundle) {
// onConnected indicates that an account was selected on the device, that the selected
// account has granted any requested permissions to our app and that we were able to
// establish a service connection to Google Play services.
Log.d(TAG, "onConnected:" + bundle);
mShouldResolve = false;
mAccountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
//HERE I RETRIEVE THE TOKEN AND NEED TO IMPLEMENT CALLBACK
new RetrieveTokenTask().execute(mAccountName);
// Show the signed-in UI
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.sign_in_button) {
onSignInClicked();
}
}
private void onSignInClicked() {
// User clicked the sign-in button, so begin the sign-in process and automatically
// attempt to resolve any errors that occur.
mShouldResolve = true;
mGoogleApiClient.connect();
// Show a message to the user that we are signing in.
//mStatusTextView.setText(R.string.signing_in);
Log.i("GoogleSignIn", "in progress");
}
private class RetrieveTokenTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String accountName = params[0];
String scopes = "oauth2:profile email";
String token = null;
try {
token = GoogleAuthUtil.getToken(getActivity().getApplicationContext(), accountName, scopes);
} catch (IOException e) {
Log.e(TAG, e.getMessage());
} catch (UserRecoverableAuthException e) {
//startActivityForResult(e.getIntent(), REQ_SIGN_IN_REQUIRED);
} catch (GoogleAuthException e) {
Log.e(TAG, e.getMessage());
}
return token;
}
@Override
protected void onPostExecute(String token) {
super.onPostExecute(token);
Log.i("Token Value: ", token);
//TODO : access token verifier https://developers.google.com/identity/sign-in/android/backend-auth
accessToken = token;
}
}
當然,我可以這樣做,但我的問題是如果有可能添加一個回調方法異步任務;) –
哇,謝謝! –
歡迎您:) – vishnus