如果提供uri,managedQuery方法返回null的情况是什么?

时间:2010-06-25 01:23:21

标签: android sqlite

我正在做一些Android应用程序。我只是想知道managedQuery方法返回null值会是什么情况?

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

1 个答案:

答案 0 :(得分:2)

如果满足以下任何条件,

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,因此如果您从null电话中获得managedQuery(),那么您的问题就在于内容提供商。