android6.0 toast不能用全局变量context,怎么办?

 bj韩式尕伙 发布于 2022-10-28 18:48

想在网络请求之前进行一次“网络可用”的判断,如果网络不可用,我就不执行网络请求,直接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 params, Response.Listener 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);
}

望解答!谢谢!

4 个回答
  • 1、检查手机是否关闭此App通知,我以前遇到过这个问题。
    2、在需要的地方直接使用Toast.make().show()方法查看是否出来Toast
    3、也可以使用SnackBar替换Toast

    2022-10-29 20:55 回答
  • 楼上说的没错,6.0以上关闭通知权限后无法看到toast,而且我个人的项目中(7.0)使用Toast也是没有问题的,建议检查具体的实现逻辑。

    2022-10-29 20:56 回答
  • Toast,可以直接使用application的context,另外手机应用如果关闭了通知选项也会看不到Toast

    2022-10-29 21:00 回答
  • PromptManager.showToast(); 这个方法是你封装了Toast类。你直接用Toast看下6.0手机有无问题。方便的话也贴一下showToast();这个方法出来。

    2022-10-29 21:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有