2009-12-30 49 views
1

我有兩個類,一個是標準活動,另一個是服務。我希望該服務能夠更新服務中發生的某些事件的活動的TextView(通過.setText)。從服務中更改另一個類中的TextView

我試圖通過在Activity-Class內編程類似setter-method的方法來實現此目的,但TextViews不接受static-引用,並且當我嘗試調用Activity-class的實例時通過MyActivityClassName aVariable = new MyActivityClassName();),我得到一個NullPointer異常,即使在調用時可以看到問題中的視圖。

任何人都可以告訴我我做錯了什麼:-)?這可能更像是一個基本的Java問題,而不是Android的一個問題,但由於它可能與Android服務的本質有關,所以我仍然添加了android-tag。

感謝您的幫助!

+0

你能發佈你的服務和視圖的代碼嗎? – Ichorus 2009-12-30 22:08:16

回答

3

我想在服務中所發生 某些事件更新 活動的 TextView的(通過.setText)服務。

我強烈建議更大的邏輯去耦。請Service告知Activity更新TextView

您可以通過broadcast IntentActivity提供Service調用的偵聽器對象。無論哪種情況,請確保活動從服務中分離(取消註冊監聽器或廣播接收器),以免導致內存泄漏。

而且,當然,這隻有在活動實際運行時纔有效。

+0

謝謝你的回答和鏈接,我會用廣播Intent嘗試一下! – Nick 2009-12-31 00:25:57

+0

真棒,它的作品:-)!非常感謝!您的示例非常有幫助! – Nick 2010-01-02 17:25:26

相關問題