//获取当前天气
public void NowWeatherFill() {
mHandler = new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
String NowUrl = Constant.NOW_WEATHER_URL + "location=" + (String) msg.obj + "&key=" + Constant.API_KEY;
HttpUtils.sendOkHttpRequest(NowUrl, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
ToastUtils.showShortToast(MainActivity.this,"错误");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String responseData = response.body().string();
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
NowWeatherBean nowWeatherBean = null;
if (responseData != null && !responseData.isEmpty()) {
nowWeatherBean = gson.fromJson(responseData, NowWeatherBean.class);
tvTemperature.setText(nowWeatherBean.getNow().getTemp());//温度
String tempStr = "当前温度:" + nowWeatherBean.getNow().getTemp() + "度,天气" + nowWeatherBean.getNow().getText() + "。";
tvWeek.setText(DateUtils.getWeekOfDate(new Date()));//星期
tvInfo.setText(nowWeatherBean.getNow().getText());//天气状况
String time = DateUtils.updateTime(nowWeatherBean.getUpdateTime());//截去前面的字符,保留后面所有的字符,就剩下 22:00
tvOldTime.setText("最近更新时间:" + WeatherUtil.showTimeInfo(time) + time);
tvWindDirection.setText("风向 " + nowWeatherBean.getNow().getWindDir());//风向
tvWindPower.setText("风力 " + nowWeatherBean.getNow().getWindScale() + "级");//风力
wwBig.startRotate();//大风车开始转动
wwSmall.startRotate();//小风车开始转动
}else{
ToastUtils.showShortToast(MainActivity.this,"错误");
}
}
});
}
});
return false;
}
};
}
//获取空气质量
public void AirQualityFill(){
mHandler = new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
String NowUrl = Constant.AIRQUALITY_URL + "location=" + (String) msg.obj + "&key=" + Constant.API_KEY;
HttpUtils.sendOkHttpRequest(NowUrl, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
ToastUtils.showShortToast(MainActivity.this,"错误");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String responseData = response.body().string();
runOnUiThread(new Runnable() {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void run() {
Gson gson = new Gson();
Air_qualityBean air_qualityBean = null;
if (responseData != null && !responseData.isEmpty()) {
air_qualityBean = gson.fromJson(responseData, Air_qualityBean.class);
String airStr = "空气质量:" + air_qualityBean.getNow().getAqi() + ",空气" + air_qualityBean.getNow().getCategory() + "。";
rpbAqi.setMaxProgress(300);//最大进度,用于计算
rpbAqi.setMinText("0");//设置显示最小值
rpbAqi.setMinTextSize(32f);
rpbAqi.setMaxText("300");//设置显示最大值
rpbAqi.setMaxTextSize(32f);
rpbAqi.setProgress(Float.valueOf(air_qualityBean.getNow().getAqi()));//当前进度
rpbAqi.setArcBgColor(getColor(R.color.arc_bg_color));//圆弧的颜色
rpbAqi.setProgressColor(getColor(R.color.arc_progress_color));//进度圆弧的颜色
rpbAqi.setFirstText(air_qualityBean.getNow().getCategory());//空气质量描述 取值范围:优,良,轻度污染,中度污染,重度污染,严重污染
rpbAqi.setFirstTextSize(44f);//第一行文本的字体大小
rpbAqi.setSecondText(air_qualityBean.getNow().getAqi());//空气质量值
rpbAqi.setSecondTextSize(64f);//第二行文本的字体大小
rpbAqi.setMinText("0");
rpbAqi.setMinTextColor(getColor(R.color.arc_progress_color));
tvAirInfo.setText("空气" + air_qualityBean.getNow().getCategory());
tvPm10.setText(air_qualityBean.getNow().getPm10());//PM10
tvPm25.setText(air_qualityBean.getNow().getPm2p5());//PM2.5
tvNo2.setText(air_qualityBean.getNow().getNo2());//二氧化氮
tvSo2.setText(air_qualityBean.getNow().getSo2());//二氧化硫
tvO3.setText(air_qualityBean.getNow().getO3());//臭氧
tvCo.setText(air_qualityBean.getNow().getCo());//一氧化碳
}else{
ToastUtils.showShortToast(MainActivity.this,"错误");
}
}
});
}
});
return false;
}
};
}
最近自学Android,尝试做一个天气预报app,写了这两个方法,通过get请求获取数据,直接在
onCreate(Bundle savedInstanceState)方法里执行
但是这两个方法在执行中只执行了一个(谁在前面就执行谁)运行中也没有报错,感觉是不是线程阻塞了