Ist die folgende Situation schlechtes Design oder bin ich etwas wichtiges übersehen?Synchronisierte Methode von Android Activity onCreate Methode
Hier ist der Code
public class MainActivity extends AppCompatActivity … {
…
@Override
public void onCreate(Bundle savedInstanceState){
…
buildGoogleApiClient();
}
/**
* Builds a GoogleApiClient. Uses the addApi() method to request the LocationServices API.
*/
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
}
Warum ist buildGoogleApiClient
synchronized
, wenn es überhaupt ist nur von innen onCreate
genannt?
Ich weiß, es kann nicht weh tun, aber das ist kaum der Punkt der Frage. Was ich wissen muss ist: Warum ist es notwendig?
bearbeiten
Quelle vollständigen Code: https://github.com/googlesamples/android-play-location/blob/master/BasicLocationSample/app/src/main/java/com/google/android/gms/location/sample/basiclocationsample/MainActivity.java
Danke für die Antwort. Aber leider verstehe ich deine Antwort nicht. Vielen Dank. –
Nach der aktuellen Verwendung der Methode würde ich nein sagen, es ist nicht notwendig. In der Tat würde ich nicht wissen, warum es mehrere Threads versuchen würde, den gleichen API-Client in einer App zu erstellen. – CodeCody
Dies ist von http://developer.android.com/training/location/retrieve-current.html. Ihre Ingenieure sollen Topnotch sein, und sie haben Android gebaut, also ... es lohnt sich zu fragen, was hier passiert. –