问题描述
想在网络请求之前进行一次“网络可用”的判断,如果网络不可用,我就不执行网络请求,直接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);}
望解答!谢谢!
问题解答
回答1:PromptManager.showToast(); 这个方法是你封装了Toast类。你直接用Toast看下6.0手机有无问题。方便的话也贴一下showToast();这个方法出来。
回答2:Toast,可以直接使用application的context,另外手机应用如果关闭了通知选项也会看不到Toast
回答3:楼上说的没错,6.0以上关闭通知权限后无法看到toast,而且我个人的项目中(7.0)使用Toast也是没有问题的,建议检查具体的实现逻辑。
回答4:1、检查手机是否关闭此App通知,我以前遇到过这个问题。2、在需要的地方直接使用Toast.make().show()方法查看是否出来Toast3、也可以使用SnackBar替换Toast

