检查AsyncTask参数是否为null

时间:2015-11-20 00:54:47

标签: android android-asynctask indexoutofboundsexception

我有一个在启动时执行的活动的异步任务。如果用户手动选择位置,则url包含作为参数传递给asynctask的值,并且如果用户没有指定位置,则异步任务使用默认URL。我的问题是,如果未指定参数,我无法在代码上调用s/lapply。有没有办法检查并查看参数是否已传递到异步任务?以下是我的尝试。我已经尝试了url[0]url[0].isEmpty(),但都给了我url[0] == null错误。

IndexOutOfBounds

3 个答案:

答案 0 :(得分:1)

尝试if(url.length ==0)检查它是否为空!

答案 1 :(得分:1)

您可以通过以下方式检查参数是否已提供:

if(url == null)

检查if(url[0].length == 0)时会得到 ArrayIndexOutOfBoundsException ,因为urlnull,这基本上意味着数组包含0个元素,这也意味着你可以& #39;访问url[0],因为它会被视为超出范围

答案 2 :(得分:0)

您知道String...中的String... url是一个数组吗?因此,您可以实现多级检查:

  1. 检查url是否为空:

    if(url.length() == 0){
        //error, no URL given
    }
    
  2. 检查url是否有值,但为null:

    if(url[0] == null){
        //error, url is null
    }