コールバックを別のクラスに送信することはできますか?googleAPIClient接続コールバックを別のクラスに送信することはできますか?
私は次のようにアプリケーションのクラスがあります。
public class MyApp extends Application {
private GoogleApiClient mGoogleApiClient;
public MyApp(){
// bla... and initialize google client here...
this.mGoogleApiClient = new GoogleApiClient.Builder(this.getApplicationContext())
.addApi(Auth.GOOGLE_SIGN_IN_API, this.GSO()).build();
}
}
を、私は次のようにメインクラスがあります。以下のよう
public class MyActivity extends AppCompatActivity {
private MyApp app;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app = (MyApp) this.getApplication();
}
protected void onStart(){
super.onStart();
GoogleApiClientUtility googleApiClientUtility = new GoogleApiClientUtility(app, new GoogleApiClient.ConnectionCallbacks(){
@Override
public void onConnected(@Nullable Bundle bundle) {
// i want app.mGoogleApiClient ConnectionCallbacks listen to this code
}
@Override
public void onConnectionSuspended(int i) {
// i want app.mGoogleApiClient ConnectionCallbacks listen to this code
}
});
googleApiClientUtility.connect();
}
}
とGoogleApiClientUtilityクラスでは:
public class GoogleApiClientUtility {
private MyApp mApp;
public GoogleApiClientUtility(MyApp app, GoogleApiClient.ConnectionCallbacks callbacks){
mApp = app;
}
public final void connect() {
/* how to do this below???
* mApp.getGoogleApiClient().registerConnectionCallbacks(????)
* so it can send to onConnect listener in MyActivity Class above
*/
mApp.getGoogleApiClient().connect();
}
}
がありますコールバック関数を '呼び出し元クラス'に設定する方法はありますか?
はい、あなたがそれを行うことができ、
はいそれは可能です –
GoogleApiClient用のユーティリティクラスを作成し、複数のクラスにコールバックを送信します。 – ADM