【问题标题】:Setting Request Priority Volley设置请求优先级排球
【发布时间】:2013-07-12 13:00:59
【问题描述】:

我正在尝试使用 Android 中的 Volley 库设置我的请求的优先级。我不知道如何设置请求优先级。

StringRequest request = new StringRequest(Request.Method.GET,"feed URL",volleyListener, volleyErrorListener);
pe.requestQueue.add(request);

关于我将如何做到这一点的任何想法?

【问题讨论】:

    标签: java android android-volley


    【解决方案1】:

    使用 Kotlin:

    val stringRequest = object : StringRequest( Request.Method.GET, url, 
        { response -> Log.i("Response", response) }, 
        { error -> Log.i("Error", error) } ) 
        { override fun getPriority(): Priority { return Priority.HIGH } }
    

    【讨论】:

      【解决方案2】:

      这是设置优先级的快速方法,

          StringRequest request = new StringRequest(Request.Method.GET,"feed URL",volleyListener, volleyErrorListener) {
              @Override
              public Priority getPriority() {
                  return Priority.IMMEDIATE;
              }
          };
      

      【讨论】:

      • 谢谢,这是一种更好的方法来做一个简单的事情,比如改变优先级。
      • 这会设置优先级吗?我有点困惑,你能澄清一下吗..
      【解决方案3】:

      不幸的是,图书馆还没有完全充实。要为请求设置优先级,您需要扩展请求并覆盖 getPriority()。对于您的示例,我将创建一个扩展 StringRequest 并实现 getPriority() 的新类(也可能是 setPriority(),因此您可以以编程方式更改不同请求中的优先级)。

      private Priority mPriority = Priority.LOW;
      
      @Override
      public Priority getPriority() {
          return mPriority;
      }
      
      public void setPriority(Priority priority) {
          mPriority = priority;
      }
      

      Priority 是来自 Request 类的 ENUM。

      【讨论】:

      • 原来 imagerequest 已经设置了 Priority.LOW 但你回答有效。谢谢。
      • 是的,ImageRequest 已经有了,但是 StringRequest 没有,Request 类也没有提供手动设置的方法。 Volley 运行良好,但如果您想根据自己的用途对其进行定制,仍然需要自定义类。
      • Volley 支持四种优先级 - 低、普通、高和立即。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多