gpt4 book ai didi

android - 为什么 onCreate 方法在使用 Google Play 服务位置 API 获取位置后不执行下一行?

转载 作者:行者123 更新时间:2023-11-30 00:21:47 25 4
gpt4 key购买 nike

在我的 onCreate 方法中,getLocation() 方法使用 Google Play 服务位置 API 获取信息。它运行良好,但是在执行 getLocation() 之后,我的 onCreate 方法不执行下一行代码。接下来我应该做什么来执行完成 getLocation() 后我的 onCreate 方法中的行?谢谢!

    public class WeatherActivity extends AppCompatActivity {

FusedLocationProviderClient mFusedLocationClient;
TextView locationTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_weather);
locationTextView = (TextView) findViewById(R.id.locationTextView);
getLocation();

//Next line doesn't execute
locationTextView.setText("THIS TEXT WILL NEVER APPEAR");
}

private void getLocation() {
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
//Setting text to TextView
locationTextView.setText("THIS TEXT IS OK");
}
}
});
}
}

最佳答案

该行没有执行,或者它的行为不符合您的预期?你有没有在那里设置断点并调试它?

对我来说,该行似乎执行得很好,但文本很快被 onSuccess 回调覆盖。

onSuccess 不会立即被调用,而是在未来的某个时间被调用。所以 locationTextView.setText("THIS TEXT WILL NEVER APPEAR"); 行很可能在 onSuccess

中的代码之前执行

关于android - 为什么 onCreate 方法在使用 Google Play 服务位置 API 获取位置后不执行下一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com