小编guy*_*y_m的帖子

Android(Java)HttpURLConnection静默重试'读'超时

所以我Google Volley用于HTTP请求,基本上使用Java的是HttpURLConnection.

根据我的测试,问题是:
当达到'读'超时时HttpURLConnection,在连接关闭之前执行静默重试并抛出相关的异常(SocketTimeoutException).

请注意:
- 我在使用HTTP POST请求时注意到此错误.
- 'read'超时与'connect'超时不同.
- 如果未设置'read'超时(通过调用connection.setReadTimeout(int)设置)(0),或设置为大于该值connection.setConnectTimeout(int),则不会发生此错误.
- 这个问题已经在这里讨论了,但是我没有找到任何令人满意的解决方案.
- 这里可以找到一个有点相关的问题,但我不确定它是否相关(是吗?)

更多背景
我的应用程序用于付钱,所以不重试请求是至关重要的(是的,我知道它可以由服务器处理,我希望我的客户端"正确"无论如何).

设置'read'超时时,如果服务器连接已建立,但服务器在应答之前等待/ sleeps/delays-response'超时'时间(从而引发'read'异常,而不是'connect'异常) ,在引发异常之前发送另一个(静默)请求,导致2个类似的请求,这是不可接受的.

我在找什么样的解决方案?
好吧,一个能很好地解决这个问题/错误的问题,就像这里解释的解决方案一样(但我再说一遍,我认为在这种情况下它是无关紧要的).
此外,我希望保持原始流程不变,这意味着不要强制连接关闭或类似的东西.

我现在要做的是,将'read'超时设置为'connection'超时的两倍(它们同时开始计数),以确保首先引发'connection'异常.我还将尝试在服务器端克服此问题.问题是,这个"读取"超时是有原因的,我当前的实现实际上只是忽略它,并且只处理"连接"超时.

编辑Volley图书馆的RetryPolicy还没有在这个问题上的影响,因为这是一个静默重试.我在图书馆里看起来尽可能深.到处记录/断点,取消了重试的调用.我怎么知道它是99.99%的HttpURLConnection问题.

java android httpurlconnection android-volley

11
推荐指数
1
解决办法
7827
查看次数

Android导航抽屉不会将onTouchEvent传递给Activity

我有一个Activity使用Android NavigationDrawer.当只使用fragments(像往常一样)时,一切都很完美.但现在我想drawer在我的应用程序的其他活动中使用它,对于其中一些,我不希望主视图是一个fragment.


的问题是,在onTouchEvent()对的activity本身(和onItemClickedListener()一个孩子的ListView这个问题)不叫,因为drawer消费它.当然,我希望它被称为:)
不用说,我希望答案很简单(甚至是XML),并希望不是通过扩展Drawer类(除非那是当然需要的).

更多信息
Activity的主要布局非常简单,基本上是a ListViewDrawerLayout它的顶部(在XML下面).
Drawer有一个fragment,因为它是childView(对片段导航),当然,在ListViewDrawer项目.

我已经看到很多关于(不完全)类似问题的问题,而且常见的答案是在抽屉上使用onInterceptTouch(),requestDisallowInterceptTouchEvent()DrawerLayout父视图(Activity的主要内容)和甚至onTouchEvent()(返回False)上ListView.
似乎没有什么可以做到的.

我读了这个链接
,似乎在某处使用拦截方法可能就是答案.但是怎么样?

如果您需要任何代码,请告诉我.但这是一个非常基本的代码/布局.
谢谢!

android navigation-drawer

9
推荐指数
1
解决办法
5939
查看次数

Android收据/ zigzag drawable/layout

我需要在Android中创建收据布局.这个想法很简单,一个带有锯齿形底边的矩形布局.

最好的结果是具有固定锯齿形尺寸(意味着固定的半三角形尺寸)的可绘制/布局,它将实时地根据形状的实际宽度乘以三角形的数量.如果需要,可以使用剪辑三角形.

这是一个很好的例子(编辑:我指的是底部之字形线):

在此输入图像描述

我实际上并不知道如何创建它.想到9补丁,但似乎不合适.想到列表层可绘制水平偏移可能..

也许有可能创建一个带有单独缩放部分的9补丁,以保持之字形的宽高比...这也可以.

编辑 - 答案 使用@Luksprog的评论,我轻松地重新创建了我想要的东西.
这是一些代码:

图像(请注意,高度对应于源图像大小):

    <ImageView
        android:id="@+id/zigzag_bottom"
        android:layout_width="match_parent"
        android:layout_height="12dp"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@drawable/zigzag" />    
Run Code Online (Sandbox Code Playgroud)

绘制:

    <?xml version="1.0" encoding="utf-8"?>
    <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/ic_zigzag"
        android:tileMode="repeat"
        android:antialias="true"
    />
Run Code Online (Sandbox Code Playgroud)

android android-drawable

8
推荐指数
1
解决办法
3468
查看次数

API上的Android应用程序onLowMemory()> = 14

一个小问题.

根据Android文件:

最好,您应该从ComponentCallbacks2实现ComponentCallbacks2.onTrimMemory,以根据各种级别的内存需求逐步卸载资源.该API适用于API级别14及更高版本,因此您只应将此onLowMemory方法用作旧版本的后备版本

所以.还会onLowMemory()被更高级别的API调用吗?
显然,我只想onTrimMemory()在关卡时从内部调用它TRIM_MEMORY_COMPLETE,但我不希望它被调用两次:)

谢谢!

performance android

6
推荐指数
1
解决办法
1111
查看次数