찾다

 >  Q&A  >  본문

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

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

望解答!谢谢!

迷茫迷茫2771일 전584

모든 응답(4)나는 대답할 것이다

  • 阿神

    阿神2017-04-18 09:15:46

    PromptManager.showToast(); 이 메소드는 Toast 클래스를 캡슐화합니다. Toast를 사용하여 6.0 휴대폰에 문제가 있는지 직접 확인할 수 있습니다. 편리하다면 showToast() 메소드도 게시해 주세요.

    회신하다
    0
  • 阿神

    阿神2017-04-18 09:15:46

    토스트는 애플리케이션의 컨텍스트를 직접 사용할 수 있습니다. 또한 모바일 애플리케이션에서 알림 옵션을 끄면 토스트를 볼 수 없습니다

    회신하다
    0
  • 迷茫

    迷茫2017-04-18 09:15:46

    위에 말씀하신 내용이 맞습니다. 버전 6.0 이상에서는 알림 권한을 끄면 토스트가 보이지 않으며, 제 개인 프로젝트(7.0)에서는 토스트를 사용하는데 문제가 없으니 구체적인 구현 로직을 확인하시는 것이 좋습니다. .

    회신하다
    0
  • PHPz

    PHPz2017-04-18 09:15:46

    1. 휴대전화에서 이 앱 알림이 꺼져 있는지 확인하세요. 이전에 이 문제가 발생한 적이 있습니다.
    2. 토스트가 나오는지 확인하려면 Toast.make().show() 메소드를 직접 사용하세요
    3. Toast를 대체하려면 SnackBar를 사용할 수도 있습니다

    회신하다
    0
  • 취소회신하다