【发布时间】:2016-08-29 03:20:57
【问题描述】:
以下情况是糟糕的设计还是我忽略了一些重要的事情?
这里是代码
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();
}
}
为什么buildGoogleApiClient synchronized 只能从内部onCreate 调用?
我知道这不会造成伤害,但这并不是问题的重点。我需要知道的是:为什么需要?
编辑
【问题讨论】:
-
感谢您的回复。但不幸的是,我不明白你的回答。谢谢。
-
就该方法的当前使用而言,我会说不,没有必要。事实上,我不知道为什么会有多个线程试图在一个应用上构建同一个 API 客户端。
-
这是来自developer.android.com/training/location/retrieve-current.html。他们的工程师应该是一流的,而且他们构建了 android,所以......值得想知道这里发生了什么。
标签: java android multithreading android-activity