想在网络请求之前进行一次“网络可用”的判断,如果网络不可用,我就不执行网络请求,直接return。
在android5.0是正常可以判断,并且弹出Toast。
但是android6.0的机子进行运行,不能弹出Toast。
网上搜索之后,有人说这是因为Toast不能用全局变量Context...还是迷茫不知道到底是怎么回事。望解答!
//检查网络方法,(context是从Activity得到传向HttpUtils的)
`private void checkNet(Context context){
isNetAvailable=NetWorkTools.isNetWork(context);
if(!isNetAvailable){
PromptManager.closeProgressDialog();
PromptManager.showToast(context, "网络不可用,请检查网络后再重试!");
return;
}
}
`
//HttpUtils的网络请求
public void login(Context context,HashMap<String, String> params, Response.Listener<String> successListener, Response.ErrorListener errorListener) {
checkNet(context);
System.out.println("params:" + params);
StringRequest request = new StringRequest(Method.POST, Constants.LOGIN, params, successListener,errorListener);
VolleyUtils.getInstance(mContext).addToRequestQueue(request);
}
望解答!谢谢!
PromptManager.showToast(); Kaedah ini merangkumi kelas Toast. Anda boleh terus menggunakan Toast untuk melihat sama ada terdapat sebarang masalah dengan telefon 6.0. Jika ia mudah, sila siarkan juga kaedah showToast();
Roti bakar, anda boleh menggunakan konteks aplikasi secara langsung Selain itu, jika aplikasi mudah alih mematikan pilihan pemberitahuan, anda tidak akan dapat melihat Roti Bakar
.Apa yang anda katakan di atas adalah betul Toast tidak dapat dilihat selepas mematikan kebenaran pemberitahuan dalam versi 6.0 dan ke atas, dan tiada masalah menggunakan roti bakar dalam projek peribadi saya (7.0) Adalah disyorkan untuk menyemak logik pelaksanaan tertentu.
1. Semak sama ada pemberitahuan Apl ini dimatikan pada telefon anda.
2. Gunakan kaedah Toast.make().show() secara langsung jika perlu untuk menyemak sama ada Toast keluar
3. Anda juga boleh menggunakan SnackBar untuk menggantikan Toast