簡體   English   中英

如何將數據從服務/線程類傳遞到主活動?

[英]How can I pass data from service/thread class to the main activity?

我在名為"sum"的主要活動中創建了變量,並在服務的線程中創建了將變量加1的循環,如下所示:

public void run() {
    for(int i=0;i<50000000;i++) {
        num++;
    }

現在,我希望每次將變量"num"增加1時,它將"sum"的值更新為"num"的值。

但是我真的不知道該怎么做。

我希望這將是實時更新,而不是在線程結束或服務將被銷毀之后。

您必須使活動綁定到服務並為其定義接口。 但這一定是一項服務嗎? 也許AsyncTask可以是更簡單的解決方案?

您將通過在服務線程中廣播意圖,並在主線程中注冊該意圖類型的接收者來實現這一點。 為此,您將需要三個組件:

  • 目的,如果需要從服務發送到主線程的其他數據,則添加其他功能
  • 廣播接收器,它是擴展BroadcastReceiver的類,並在BroadcastReceiver意圖時執行其OnReceive方法。
  • 一個意圖過濾器,基本上是將一個意圖鏈接到一個接收者的東西。 您使用過濾器類型注冊接收器。

我可以重新輸入代碼,但是在此鏈接上有關於如何使用該代碼的說明。 您對最后三張幻燈片感興趣:

http://www.slideshare.net/CodeAndroid/android-intent-intent-filter-broadcast-receivers

另外,請查看以下內容: http : //developer.android.com/reference/android/content/BroadcastReceiver.html http://developer.android.com/reference/android/content/IntentFilter.html

暫無
暫無

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

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