【问题标题】:what case the managedQuery method return null if uri is provided?如果提供了 uri,managedQuery 方法在什么情况下返回 null?
【发布时间】:2010-06-25 01:23:20
【问题描述】:

我正在做一些安卓应用程序。我只是想知道 managedQuery 方法返回空值的情况是什么?

  if (getIntent().getData() == null) {
        getIntent().setData(Notepad.Notes.CONTENT_URI);
    }
    uri = getIntent().getData();
    c = managedQuery(uri, PROJECTION, null, null, null);// return null value. 

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    如果以下任何一项为真,managedQuery() 将返回 null

    • 第一个参数中提供的Urinull
    • 内容提供程序实现返回 null 作为查询的结果
    • 如果内容提供者尝试处理查询时发生异常

    我真的不喜欢你打电话给setData()。请尝试以下方法:

    Uri uri=getIntent().getData();
    
    if (uri==null) {
      uri=Notepad.Notes.CONTENT_URI;
    }
    
    c=managedQuery(uri, PROJECTION, null, null, null);
    

    这样,您知道您的Uri 不会是null,因此如果您从managedQuery() 调用中得到null,则您的问题在于内容提供者。

    【讨论】:

    • 我喜欢你的编码风格......简单易追踪......我已经检查过......第一个参数不为空。我不确定最后两点是否适用。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多