2016-12-26 2 views
0

google apiclient의 로그 아웃에 잘 작동하는 코드가 있지만 실행 후 하나의 작업이 열렸습니다. 어느 곳에서나 finish(); 그 활동을 죽이거나 비동기 작업에서 내가 할 수있는 일은 무엇입니까? 나는 비동기로하려했지만 클라이언트가 연결되지 않았기 때문에 오류가 발생했습니다. 여기 로그 아웃하고 비동기 작업에서 GoogleAPIclient 지우기

수업 활동으로 확장과 로그 아웃에 대한 코드입니다

public class GoogleDriveLogoutBackup extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { 
private static final String TAG = "drive-quickstart"; 
private GoogleApiClient mGoogleApiClient; 


@Override 
protected void onStart() { 
    super.onStart(); 
    if (mGoogleApiClient == null) { 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(Drive.API) 
       .addScope(Drive.SCOPE_FILE) 
       .addScope(Drive.SCOPE_APPFOLDER) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 
    } 

    mGoogleApiClient.connect(); 
} 

@Override 
public void onConnected(Bundle connectionHint) { 
    Log.d("Connected","Here"); 
    mGoogleApiClient.clearDefaultAccountAndReconnect(); 
    finish(); 
} 

@Override 
public void onConnectionSuspended(int i) { 
    finish(); 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
     } 
} 

그리고 여기에 내가 나에게 오류 제공 비동기 클래스에 사용 해요 코드 :

public class GoogleDriveLogout extends AsyncTask<Void, Void, Void> { 
private static final String TAG = "drive-quickstart"; 
private GoogleApiClient mGoogleApiClient; 
private Context mcontext; 

public GoogleDriveLogout(Context context) { 
    this.mcontext = context; 
} 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    if (mGoogleApiClient == null) { 
     mGoogleApiClient = new GoogleApiClient.Builder(mcontext) 
       .addApi(Drive.API) 
       .addScope(Drive.SCOPE_FILE) 
       .addScope(Drive.SCOPE_APPFOLDER) 
       .build(); 
    } 

    mGoogleApiClient.connect(); 
} 


@Override 
protected Void doInBackground(Void... params) { 
    Log.d("Connected", "Here"); 
    mGoogleApiClient.clearDefaultAccountAndReconnect(); 
    return null; 
} 
} 

답변

0

내가 할 수 한 수를 이제는 Google 자체에서 제공하는 ApiClientAsyncTask를 호출하여 사용합니다.

관련 문제