使用 onSlicePinned 更新 Android 个切片中的数据
Updating Data in Android Slices using onSlicePinned
由于无法在 onBindSlice() 中完成冗长的操作,我正在通过 onSlicePinned() 方法从服务器获取数据,并且然后以切片显示它。但是我看不懂这个函数是什么时候调用的
我以为每次我们重新启动助手时都会调用它(即在杀死它后启动助手)。它在 Slice-Viewer 应用程序上测试时工作,每次我杀死切片查看器并重新开始然后 onSlicePinned() 与 onSliceBind()[=21= 一起被调用],但在 Google 助理的情况下则不然。那么这是一个错误还是应该是这样的?
如果这就是 onSlicePinned() 应该如何工作,那么有什么方法可以在每次启动应用程序后调用 onBindSlice() 时获取数据.
要将内容从服务器加载到切片中,您应该遵循此处的延迟内容最佳实践:
https://developer.android.com/guide/slices/templates#delayed_content
tl;dr 是,你应该立即 return 一些东西,然后开始 load/process 你的内容,一旦内容准备好,调用 notifyChange()
这将导致 onBindSlice()
再次被调用,您可以在其中 return 具有新内容的 Slice。
由于无法在 onBindSlice() 中完成冗长的操作,我正在通过 onSlicePinned() 方法从服务器获取数据,并且然后以切片显示它。但是我看不懂这个函数是什么时候调用的
我以为每次我们重新启动助手时都会调用它(即在杀死它后启动助手)。它在 Slice-Viewer 应用程序上测试时工作,每次我杀死切片查看器并重新开始然后 onSlicePinned() 与 onSliceBind()[=21= 一起被调用],但在 Google 助理的情况下则不然。那么这是一个错误还是应该是这样的? 如果这就是 onSlicePinned() 应该如何工作,那么有什么方法可以在每次启动应用程序后调用 onBindSlice() 时获取数据.
要将内容从服务器加载到切片中,您应该遵循此处的延迟内容最佳实践:
https://developer.android.com/guide/slices/templates#delayed_content
tl;dr 是,你应该立即 return 一些东西,然后开始 load/process 你的内容,一旦内容准备好,调用 notifyChange()
这将导致 onBindSlice()
再次被调用,您可以在其中 return 具有新内容的 Slice。