в каком случае метод managedQuery возвращает ноль, если указан uri? - PullRequest
0 голосов
/ 25 июня 2010

Я делаю приложение для Android.Мне просто интересно, в каком случае метод managedQuery вернет нулевое значение?

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

1 Ответ

2 голосов
/ 25 июня 2010

managedQuery() вернет null, если выполняется любое из следующих условий:

  • Uri, указанный в первом параметре: 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(), ваша проблема заключается в поставщике контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...