Как правило, bulkInsert применяется для первоначального наполнения контент провайдера
Да именно это и имел в виду. Иногда надо небольшими пачками дописывать. Использовал действительно только в одном месте и был уверен
Даже скажу применил
long id = db.insertWithOnConflict(TABLE_NAME, null, value, SQLiteDatabase.CONFLICT_REPLACE);
Все же думаю попробовать UcaOrm
Подкупило описание на хабре из трех статей стэб бай стэп так сказать. Описано именно то что требовалось в проекте, а также сверх.
MIT лицензия!
Спасибо!
Попробовал. Теперь notifyDataSetChange. В onMeasure без падения и хака.
Однако с прокруткой проблемы остались. Ее не стало после переопределения onMeasure. Если список превышает размер экрана, записи просто гдето внизу и недоступны.
Опять же из статей wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1
@Override
public boolean canScrollVertically() {
//We do allow scrolling
return true;
}
И надо переопределить
@Override
public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler,
RecyclerView.State state) {
...
storIOSQLite
.get()
.listOfObjects(Tweet.class)
.withQuery(Tweet.ALL_TWEETS_QUERY)
.withMapFunc(Tweet.MAP_FROM_CURSOR)
.prepare()
.createObservableStream() // here is the magic! It will be subscribed to changes in tables from Query
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<List<Tweet>>() {
@Override public void call(List<Tweet> tweets) {
// display the data
// magic: this will be called on each update in "tweets" table
}
});
Это конечно круто. Как понимаю внутри Callable interface?
А что на счет добавления группы записей?
В ContentProvider можно использовать bulkInsert для этого
@Override
public int bulkInsert(Uri uri, ContentValues[] values) {
...
Как у вас организовано?
Хорошо бы пример использования такого случая…
Retrofit сам по себе умеет делать асинхронные запросы. Поэтому оборачивать его дополнительно в AsyncTaskLoader не требуется. Если конечно не использовать не асинхронный вызов.
Второе, на сколько понял из кода используется общий callback
public class MyActivity extends Activity implements Callback<List<Issue>> {
Или нет?
static class IssuesLoader extends RetrofitLoader<List<Issue>, GitHub> {
Сразу с ходу без исследования, за минуту не понять
Я же хотел именно что бы было понятно за минуту и запуск в одну строку. Ну почти в одну)
В вашем примере есть
@Inject
GitHub gitHubService;
Тут явно более сложная реализация или даже сказать применение. Может быть ее и удобнее и полезнее было применить в вашем случае
public void start(int loaderId, final FragmentActivity context) {
....
assert context instanceof FragmentActivity : "Run possible only from FragmentActivity";
context.getSupportLoaderManager().restartLoader(loaderId, bundle, callback);
}
Судя по вашей логике сама концепция Loaders's это эксперимент
Обмен с Cursor реализовать через ContentProvider и локальную базу данных. AsyncTaskLoader тогда тоже не нужен, все в Servis переносим
Кеширование Loader как раз позволяет реализовать
Предзагрузка, это в какой момент? После включения телефона? Loader можно запустить в Activity.onCreate
Да именно это и имел в виду. Иногда надо небольшими пачками дописывать. Использовал действительно только в одном месте и был уверен
Даже скажу применил
Все же думаю попробовать UcaOrm
Подкупило описание на хабре из трех статей стэб бай стэп так сказать. Описано именно то что требовалось в проекте, а также сверх.
MIT лицензия!
Попробовал. Теперь notifyDataSetChange. В onMeasure без падения и хака.
Однако с прокруткой проблемы остались. Ее не стало после переопределения onMeasure. Если список превышает размер экрана, записи просто гдето внизу и недоступны.
Опять же из статей wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1
И надо переопределить
Не пробовал это
И что будет с ContentObserver на курсоре. Именно bulkInsert решал проблему дергания 1000 раз в приведенном примере 1000 запросов
Встретил в ваших примерах знакомую конструкцию)
Подумал внутри что то подобное…
Это конечно круто. Как понимаю внутри Callable interface?
А что на счет добавления группы записей?
В ContentProvider можно использовать bulkInsert для этого
Как у вас организовано?
Хорошо бы пример использования такого случая…
Второе, на сколько понял из кода используется общий callback
Или нет?
Сразу с ходу без исследования, за минуту не понять
Я же хотел именно что бы было понятно за минуту и запуск в одну строку. Ну почти в одну)
В вашем примере есть
Тут явно более сложная реализация или даже сказать применение. Может быть ее и удобнее и полезнее было применить в вашем случае
Обмен с Cursor реализовать через ContentProvider и локальную базу данных. AsyncTaskLoader тогда тоже не нужен, все в Servis переносим
Кеширование Loader как раз позволяет реализовать
Предзагрузка, это в какой момент? После включения телефона? Loader можно запустить в Activity.onCreate
developer.android.com/guide/components/services.html
Поделитесь идеей подробнее
Ну и добавить функцию