2

由于无法在onBindSlice()内部完成冗长的操作,因此我从onSlicePinned()方法从服务器获取数据,然后将其显示在切片中。但我不明白什么时候调用这个函数。

我认为每次我们重新启动助手时都会调用它(即在杀死它后启动助手)。它在 Slice-Viewer 应用程序上进行测试时正在工作,每次我杀死切片查看器并重新开始时,都会调用 onSlicePinned () 和onSliceBind (),但在 Google Assistant 的情况下则不然。那么这是一个错误还是应该是这样?如果这是onSlicePinned()应该如何工作,那么有什么方法可以在启动应用程序后每次调用onBindSlice()时获取数据。

4

1 回答 1

0

要将内容从服务器加载到切片中,您应该遵循此处的延迟内容最佳实践:

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

tl;dr 是,你应该立即返回一些东西,然后去加载/处理你的内容,一旦内容准备好,调用notifyChange()这将导致onBindSlice()再次被调用,你可以返回带有新内容的切片。

于 2019-06-26T01:52:33.637 回答