2017-09-19 116 views
1

我有一個方法將可運行的「myRunnable」發佈到全局處理程序。 該方法是爲我放在屏幕上的每個小部件調用的。所以如果我放3個小部件,那麼在消息隊列中有3個可運行的。但是,我怎樣才能從方法外部特別移除第二個可運行對象,而另一個2卻未改變?所有3個runnable都稱爲「myRunnable」,我不能從該方法外部訪問該變量。而removeCallbacks(null)會把所有東西都拿出來,所以我不能使用它。如何刪除在結束的方法調用中發佈的runnable?

+0

請張貼您的代碼。 – Kristopher

回答

0

找到了使用兩個數組列表的方法。

注意:我所有的runnables通過調用postDelayed(this)來無限循環;

當我啓動一個小部件的可運行時,我將小部件的ID添加到名爲的小部件列表widgetWasRunnable。然後我有另一個數組列表stopThisRunnable它最初是空的。運行在特定窗口小部件上的runnable會檢查stopThisRunnable以查看它是否包含此窗口小部件的ID,每個循環。所以現在我可以從程序的其他部分向stopThisRunnable添加一個小部件ID,並且某個runnable的代碼將通過removeCallbacks(this)進入else語句;

相關問題