2012-05-27 94 views
0

這裏是我的應用程序的佈局。從處理程序。返回一個字符串從服務

MainActivity 
    | 
    Service 
    |__Handler 
     |__Runnable 

在Runnable中,我從互聯網上檢索一個字符串。如果重要,它足夠小以適應意圖。 我想將字符串一直傳回MainActivity並通知它已更新。

我怎樣才能做到這一點?

+0

製作廣播或只是開始與結果作爲額外的字符串,MainActivity。 – xandy

+0

如何將傳入的接收器連接到傳出?似乎有一些範圍有關的問題.. –

+0

我會在回答 – xandy

回答

1

兩種方法:

  1. 從Runnable接口
  2. 開始在MainActivity從Runnable接口

既能使廣播需要把結果作爲字符串外,在意向。

我想你的處理程序和可運行正在服務直列級,這樣你就可以有機會獲得Context。如果不是,則必須將服務上下文傳遞給這些類。

> There seem to be some scope issues. 

不,任何類都可以調用Context.sendBroadcastContext.startActivity,並且它不需要被在主線程中完成的。

+0

我想我擁有了一切樹立正確的,包括清單。不過,我不斷收到一個ClassNotFoundException每當我發送廣播:拋出java.lang.ClassNotFoundException:com.stevenschoen.appname.MainActivity.IncomingReceiver(名稱變更)我應該在哪裏把IncomingReceiver類? –

+0

您可以創建接收器作爲活動中的內部類,並調用registerReceiver()它(記得在Acitivty.onStop註銷())。缺點是如果你的活動被殺死,你將不會收到結果。 – xandy

+0

它現在工作很完美。非常感謝! –