Android 如何删除已结束的方法调用中发布的runnable?

Android 如何删除已结束的方法调用中发布的runnable?,android,android-widget,handler,runnable,Android,Android Widget,Handler,Runnable,我有一个方法可以将可运行的“myRunnable”发布到全局处理程序。 我在屏幕上放置的每个小部件都会调用该方法。因此,如果我放置3个小部件,消息队列中有3个可运行的。但是,我怎样才能从方法外部明确地删除第二个runnable,而保留其他两个runnable呢?所有3个Runnable都称为“myRunnable”,我无法从方法外部访问该变量。removeCallbacks(null)去掉了所有内容,所以我不能使用它。找到了一种使用两个数组列表的方法 注意:我所有的runnables都通过调用p

我有一个方法可以将可运行的“myRunnable”发布到全局处理程序。
我在屏幕上放置的每个小部件都会调用该方法。因此,如果我放置3个小部件,消息队列中有3个可运行的。但是,我怎样才能从方法外部明确地删除第二个runnable,而保留其他两个runnable呢?所有3个Runnable都称为“myRunnable”,我无法从方法外部访问该变量。removeCallbacks(null)去掉了所有内容,所以我不能使用它。

找到了一种使用两个数组列表的方法

注意:我所有的runnables都通过调用postDelayed无限循环(this)


当启动小部件的可运行时,我将小部件的ID添加到名为widgetHasRunnable的数组列表中。然后我有另一个名为stopThisRunnable的数组列表,它最初是空的。在特定小部件上运行的runnable检查stopThisRunnable,以查看它是否包含该小部件的ID,每个循环。因此,现在我可以添加一个小部件的ID,以从程序的其他部分停止ThisRunnable,并且某些runnable的代码将转到带有removeCallbacks的else语句(this)

找到了一种使用两个数组列表的方法

注意:我所有的runnables都通过调用postDelayed无限循环(this)


当启动小部件的可运行时,我将小部件的ID添加到名为widgetHasRunnable的数组列表中。然后我有另一个名为stopThisRunnable的数组列表,它最初是空的。在特定小部件上运行的runnable检查stopThisRunnable,以查看它是否包含该小部件的ID,每个循环。因此,现在我可以添加一个小部件的ID,以从程序的其他部分停止ThisRunnable,并且某些runnable的代码将转到带有removeCallbacks的else语句(this)

请发你的密码。请发你的密码。