我正在使用Volley发出网络请求,但正在使用,但是运行得很好,直到突然开始在requestQueue上引发Null指针异常。

class VolleySingleton(context: Context) {

    companion object{
        @Volatile
        private var newInstance: VolleySingleton? = null

        fun getInstance(context: Context) =
                newInstance
                    ?: synchronized(this){
                    newInstance
                        ?: VolleySingleton(context).also{
                        newInstance = it
                    }
                }
    }

    private val requestQueue: RequestQueue by lazy{
        Volley.newRequestQueue(context) // throws NullPointer exception
    }

    fun<T> addToRequestQueue(req: Request<T>){
        requestQueue.add(req)
    }
}



我试图这样初始化它

private val requestQueue: RequestQueue =
        Volley.newRequestQueue(context) // throws NullPointer exception



但它仍然无法正常工作。

最佳答案

您应该使用context.getApplicationContext()而不是context

// Add a request (in this example, called stringRequest) to your RequestQueue.
VolleySingleton.getInstance(context.getApplicationContext()).addToRequestQueue(request)

关于java - Singleton中的Volley requestQueue返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60067311/

10-12 03:05