我有两个类,一个是标准活动,另一个是服务。我希望该服务在服务中发生的某些事件上更新Activity的TextView(通过.setText
)。
我试图通过在Activity-Class中编写类似setter方法的东西来实现这一点,但是TextViews不接受static
- 引用,当我尝试调用Activity的一个实例时而不是类(通过MyActivityClassName aVariable = new MyActivityClassName();
),我得到一个NullPointer异常,即使在调用时问题中的视图是可见的。
有谁能告诉我我做错了什么:-)?它可能更像是一个基本的Java问题,而不是Android-one,但由于它可能与Android服务的性质有关,我还是添加了android-tag。
感谢您的帮助!
答案 0 :(得分:3)
我希望服务更新一个 TextView(通过.setText)的 对发生的某些事件的活动 在服务范围内。
我强烈建议更大的逻辑解耦。让Service
告诉Activity
更新TextView
。
您可以通过broadcast Intent
或Activity
提供Service
调用的侦听器对象来执行此操作。在任何一种情况下,请确保Activity与服务分离(取消注册侦听器或广播Intent
接收器),以免导致内存泄漏。
当然,这仅在活动实际运行时才有效。