我有一个Activity A和一个AsyncTask,它执行一些计算并将数据存储到数据库中。这些操作大约需要3-5秒。按下“保存”按钮后调用AsyncTask,新的活动B启动(此活动B不重要)。还有Activity C,它加载我从Activity A和AsyncTask存储的数据。这是我的问题 - 如果我启动Activity C并且AsyncTask仍然没有完成存储数据,我想显示加载动画,直到AsyncTask完成并且数据可以在活动中加载。
我有一个愿景,即方法onPostExecute中的AsyncTask将更改全局变量“boolean finished = true”,并且在启动Activity C之后,我将定期检查,如果变量为true。但我认为,这不是一个正确的方法。那么,正确的方法是什么?谢谢
您可以在活动C中执行的操作是检查onResume
中的数据库是否已存在预期结果。如果它在那里,只需显示您的结果。如果没有显示您的加载图标并注册侦听特定事件的广播接收器。
在onPostExecute
的AsyncTask
,您可以播放该特定事件。当活动C收到该事件时,它可以简单地重新检查数据库现在的结果。