我在Android Studio中有一个Cloud Endpoints生成的库。端点库与我拥有的Cloud SQL数据库进行交互。
在我的Android应用程序中,我有一个带按钮的MainActivity。单击此按钮可转到ActivityA。
但是,我在Cloud SQL数据库中有一个表,我想在单击此按钮时查询该表。如果该表有某个条目,我想改为启动ActivityB。
因此,默认情况下单击按钮会启动ActivityA,但如果数据库中存在某些内容,我想启动ActivityB。
我应该如何设置它以便当您单击我的按钮时,Endpoints API(它是一个REST API)查询数据库,并根据查询结果启动ActivityA或ActivityB?
我问的原因是因为我知道你应该把Restful调用放入AsyncTask以防止UI被挂起。但是,AsyncTasks在后台运行,所以当它处理查询时,它可能为时已晚,而ActivityA只会启动。
答案 0 :(得分:1)
如果您想根据Google Cloud Endpoint ApiMethod响应的结果开始新活动,可以使用onPostExecute(Result)等HelloEndpoints示例等待显示Toast。在该示例中,android客户端等待sayHi apiMethod的MyBean响应的String值。
但根据你的评论。
但是可能存在另一种情况,即数据库条目可能在正在加载的MainActivity和用户单击按钮之间发生变化。
我认为您尝试实现的目标无法通过使用REST服务来完成,因为花费在将响应发送回Android客户端上的时间。让我们说Endpoint会向您的客户发送响应,您的客户会在1秒后收到响应。在那个第二个时间段期间,可以更改数据库值。