由于无法在 onBindSlice()内完成长时间的操作,因此,我要从 onSlicePinned()方法从服务器中获取数据,然后将其显示在切片中。但是我不知道何时调用此函数。
我以为每次我们重新启动助手时都会调用它(即杀死它后启动助手)。在Slice-Viewer应用程序上进行测试时,它可以正常工作,每次我杀死Slice Viewer并重新启动时,都会与 onSliceBind()一起调用 onSlicePinned (),但万一不能Google Assistant。那么,这是错误还是应该如此? 如果这是 onSlicePinned()的工作方式,那么启动应用程序后每次调用 onBindSlice()时,我有什么方法可以获取数据。
答案 0 :(得分:0)
要将内容从服务器加载到Slice中,您应遵循此处的延迟内容最佳做法:
https://developer.android.com/guide/slices/templates#delayed_content
tl; dr是,您应该立即返回一些内容,然后关闭并加载/处理您的内容,一旦内容准备好,请致电notifyChange()
,这将导致onBindSlice()
被再次调用您可以返回包含新内容的切片。