Обновление данных в ломтиках Android с помощью onSlicePinned - PullRequest
1 голос
/ 25 июня 2019

Поскольку внутри onBindSlice () нельзя выполнять длительные операции, я получаю данные с сервера из метода onSlicePinned () , а затем показываю их в виде слайсов.Но я не могу понять, когда вызывается эта функция.

Я думал, что она будет вызываться каждый раз, когда мы только начинаем Ассистента (то есть запускаем Ассистента после его уничтожения).Он работает во время тестирования в приложении Slice-Viewer, каждый раз, когда я убиваю просмотрщик слайсов и запускаю снова, затем вызывается onSlicePinned () вместе с onSliceBind () , но не в случае GoogleАссистент.Так это ошибка или так и должно быть?И если это то, как onSlicePinned () должно работать, то есть ли способ получить данные каждый раз, когда onBindSlice () вызывается после запуска приложения.

1 Ответ

0 голосов
/ 26 июня 2019

Чтобы загрузить контент с сервера в слайс, вы должны следовать рекомендациям по отложенному контенту здесь:

https://developer.android.com/guide/slices/templates#delayed_content

Tl; dr: вы должны вернуть что-то немедленно, затемвыключите и загрузите / обработайте ваш контент, как только контент будет готов, вызовите notifyChange(), что приведет к повторному вызову onBindSlice(), где вы сможете вернуть слайс с новым контентом.

...