簡體   English   中英

關於Android中的處理程序的問題

[英]A question about Handlers in Android

如果我做對了,處理程序就像一個隊列。 所以我的簡單問題是,如果我先發布延遲,然后再進行常規發布。 第二個職位會在第一個延遲職位之后運行嗎?

handler.postDelayed(someMethod(), 10000);
handler.post(someOtherMethod());

someOtherMethod()是否會在someMethod()之后運行

不,不會。 當所有待處理的處理程序請求(在UI線程上)完成時,將立即執行第二個。 第一個將在10秒后追加。

提示:處理程序采用Runnable ,因此它看起來像這樣:

handler.post(new Runnable {
    public void run() {
        doSomething();
    }
}

根據評論更新

處理程序在調用new Handler()的線程上調用發布的可運行對象。

否,第二篇文章將盡快(在第一篇之前)運行。

不,處理程序帖子是異步的。 handler.post()作用是將可運行對象添加到消息隊列中。 handler.postDelayed()立即將runnable添加到消息隊列中,但是計時器將設置為delay ms,之后將執行runnable。

因此,所有發布的內容是,將可運行對象添加到消息隊列中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM