我在Android Studio上使用AWS Amplify v2.3.0。查看AWS文档,我可以使用Kotlin-Callback或Kotlin-Coroutines代码。回调调用对我有效。但协程不起作用,因为IDE告诉我需要更多参数。
我需要使用协程,而不是回调。例如,带有回调的示例AWS代码可以在我身上工作:
private fun getTodo(id: String) {
Amplify.API.query(ModelQuery.get(Todo::class.java, id),
{ Log.i("MyAmplifyApp", "Query results = ${(it.data as Todo).name}") },
{ Log.e("MyAmplifyApp", "Query failed", it) }
);
}
但协同程序AWS示例代码不能正常工作,因为查询函数需要更多的参数。
suspend fun getTodo(id: String) {
try {
val response = Amplify.API.query(ModelQuery.get(Todo::class.java, id))
Log.i("MyAmplifyApp", response.data.name)
} catch (error: ApiException) {
Log.e("MyAmplifyApp", "Query failed", error)
}
}
有人知道发生了什么吗?
太感谢你了!
1条答案
按热度按时间vm0i2vca1#
使用***AWS SDK forKotlin***编写Android应用。AWS SDK for Kotlin支持协程。请参阅 *Kotlin开发指南 * 中的文档主题:
https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/coroutines.html
使用此SDK,您可以从Android项目调用AWS服务。有关详细信息,请参阅AWS代码库中的此Android示例,该示例向您展示了如何创建在Android Studio项目中调用AWS服务的Android应用:
https://docs.aws.amazon.com/code-library/latest/ug/cross_SnsPublishSubscription_kotlin_1_topic.html
参见: