2012-10-21 95 views
0

我已在主要活動創建的變量稱爲"sum"和服務的主題,我創建循環,增加變量由1這樣的:如何將數據從服務/線程類傳遞到主要活動?

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

現在我想是每一個變量"num"增加時間1,它會將"sum"的值更新爲值"num"

但我真的不知道該怎麼做。

我希望它是一個實時更新,而不是在線程結束或服務將被銷燬後。

回答

1

您必須將活動綁定到服務併爲其定義接口。 但它是否必須是服務?也許一個AsyncTask可以是一個更簡單的解決方案?

0

您將通過在您的服務線程中廣播一個意圖,並在您的主線程中爲該類型的意向註冊一個接收器來實現該目標。對於您將需要三個組成部分:

  • 這樣做的目的,添加了額外如果你需要從服務發送到你的主線程
  • 廣播接收器,擴展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

相關問題