Android:如何知道runnable是否已完成执行,并准备好下次执行。?

Android:如何知道runnable是否已完成执行,并准备好下次执行。?,android,android-layout,android-intent,android-activity,android-fragments,Android,Android Layout,Android Intent,Android Activity,Android Fragments,为我解释我想要什么可能会让人困惑,但让我试试。 我正在实现一个runnable。 在uithread上运行runnable。 使用处理程序进行60000毫秒的后期执行。 这对我来说没问题。但由于我有一个聊天活动,用户不能等待一分钟来获取消息。所以我更改了延迟5000毫秒的帖子。 现在它正在获取记录并在第一次执行时显示两次记录。 这是因为我正在传递一个id,该id在中随获取的最新记录更新 对于击球手的观点。 1.如果我使用post DELATED 5000执行代码,它会将数据附加两次到listvi

为我解释我想要什么可能会让人困惑,但让我试试。 我正在实现一个runnable。 在uithread上运行runnable。 使用处理程序进行60000毫秒的后期执行。 这对我来说没问题。但由于我有一个聊天活动,用户不能等待一分钟来获取消息。所以我更改了延迟5000毫秒的帖子。 现在它正在获取记录并在第一次执行时显示两次记录。 这是因为我正在传递一个id,该id在中随获取的最新记录更新

对于击球手的观点。 1.如果我使用post DELATED 5000执行代码,它会将数据附加两次到listview。 因为没有更新Id,因为runnable的第一次执行尚未完成,同时另一个实例已启动。我们可以知道runnable是否已经完成了它的第一次执行,或者将runnable放入队列,以便它使用最新的数据


我希望您能理解我的问题,并请求大家帮助我。

您可以使用AsyncTask,它具有onPostExecute方法,这样您就可以知道执行是否已经完成。或者你也可以利用意图。谢谢@KaHeL,我得到了与你描述的相同的方法。我放置了一个变量,它将检查执行是否已完成。在每次启动runnable之前,如果isfinished为false,它将不允许下一次执行。在asynchtask中,在post execute方法中的所有执行结束时,我将isfinished设置为true。再次感谢。