startManagingCursor () в службе? - PullRequest
       19

startManagingCursor () в службе?

1 голос
/ 31 декабря 2010

Есть ли способ использовать startManagingCursor () внутри службы вместо действия, с такими же результатами (как показано здесь )?

Более конкретно, я хотел быуправлять жизненным циклом данного курсора на основе жизненного цикла службы.Например, когда служба уничтожается, она автоматически вызывает deactivate () для данного курсора.Кроме того, когда служба создается / запускается снова, она вызывает метод requireery ().

  • Возможно ли это с помощью другого подходящего метода, реализованного в классе Service.class?
  • Возможно ли это иным способом?
  • Или это вообще бессмысленно?

Ответы [ 2 ]

7 голосов
/ 31 декабря 2010

Есть ли способ использовать startManagingCursor () внутри службы вместо действия с такими же результатами

Нет, извините.

Возможно ли это с помощью другого подходящего метода, реализованного в Service.class?

Количество

Возможно ли это иным способом?

Вы можете написать свой собственный код поддержки, чтобы делать все, что вы хотите. Я сомневаюсь, что вы можете реализовать то, что вы ищете.

Или это вообще бессмысленно?

ИМХО, да. * Автоматическое закрытие Cursor при уничтожении службы - неплохая идея. Тем не менее, понятие deactivate() / requery() не имеет большого смысла для меня в сервисе. Это также невозможная часть, потому что у вас нет места, чтобы поместить деактивированный Cursor, который будет поднят в будущем воплощении вашего служения.

0 голосов
/ 10 апреля 2015

Возможно, вам просто нужно привести его к Activity

Как показано ниже ((Activity) context) .startManagingCursor (курсор);

Вот полный код

private void getUserId(Context context) {

     AdapterClass adapterClass = new AdapterClass(this,
     DatabaseDetail.TABLE_USER_REGISTRATION);
     adapterClass.Open();

     Cursor cursor = adapterClass.fetchRecords(new String[]{"USER_OID"},
     null);
     if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
     ((Activity) context).startManagingCursor(cursor);
     }
     cursor.moveToFirst();

     adapterClass.close();

}
...