从服务更改另一个类中的TextView

时间:2009-12-30 21:13:26

标签: android

我有两个类,一个是标准活动,另一个是服务。我希望该服务在服务中发生的某些事件上更新Activity的TextView(通过.setText)。

我试图通过在Activity-Class中编写类似setter方法的东西来实现这一点,但是TextViews不接受static - 引用,当我尝试调用Activity的一个实例时而不是类(通过MyActivityClassName aVariable = new MyActivityClassName();),我得到一个NullPointer异常,即使在调用时问题中的视图是可见的。

有谁能告诉我我做错了什么:-)?它可能更像是一个基本的Java问题,而不是Android-one,但由于它可能与Android服务的性质有关,我还是添加了android-tag。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

  

我希望服务更新一个   TextView(通过.setText)的   对发生的某些事件的活动   在服务范围内。

我强烈建议更大的逻辑解耦。让Service告诉Activity更新TextView

您可以通过broadcast IntentActivity提供Service调用的侦听器对象来执行此操作。在任何一种情况下,请确保Activity与服务分离(取消注册侦听器或广播Intent接收器),以免导致内存泄漏。

当然,这仅在活动实际运行时才有效。