2009-12-30 47 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

相关问题