小编Arn*_*aud的帖子

如何处理网络问题

我的一个应用程序使用大量HTTP请求与其后端进行通信.我使用2种不同的实现来执行这些请求:

  • Volley大多数情况下的库
  • 的组合AsyncTask,并DefaultHttpClient为少数病例

大多数时候,一切都运作良好.但有时我会提出一系列网络异常,并将其展示给Crashlytics:

  • java.net.UnknownHostException: Unable to resolve host "mydomain.com": No address associated with hostname Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)

  • com.android.volley.ServerError at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:175) at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:110)

通过一些研究,我发现这应该发生在设备有一个非常糟糕的3g/4g或在VPN /子网后面,所以它无法到达我的网站.

如何确保设备真正连接到互联网?我实际上只有在此函数返回true时才执行这些请求:

public static boolean isOnline(Context ctx) {
        ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
}
Run Code Online (Sandbox Code Playgroud)

或者我应该放手,并假设每月达到几百个这样的警告是正常的?

java android httpconnection android-networking android-volley

5
推荐指数
1
解决办法
509
查看次数

如何在白色中着色Android位图?

我想将位图着色为不同的颜色.感谢这个SE问题,当我在画布上绘制它时,我能够将它染成不同的颜色.

Paint p = new Paint(Color.RED);
ColorFilter filter = new LightingColorFilter(Color.RED, 1);
p.setColorFilter(filter);
Run Code Online (Sandbox Code Playgroud)

但这似乎无法使用Color.WHITE(可能是因为我的位图仅用1种颜色着色).我想要原始位图的白色形状(只有透明+白色)

android bitmap

4
推荐指数
1
解决办法
2954
查看次数