为什么我无法更新Activity中的textView - 来自服务

时间:2014-07-21 16:26:27

标签: android

我有一个名为MainActivity的活动和一个名为MainService的服务。

在mainActivity中,我有一个启动MainService的按钮和一个textView(比如说-txt1)。

在服务的OnCreate()方法中,我采用了MainActivity的实例并使用该实例,我正在尝试使用setText更新活动的txt1(TextView)。甚至尝试过post()方法。

但它显示错误。如果我没错,我认为UI无法从服务更新。或者,我需要将服务与活动绑定。正确?

所以,我的问题是为什么我无法从服务更新活动的textView?

2 个答案:

答案 0 :(得分:0)

你可能不能直接,如果你创建一个callBack引用,你可以从服务中调用你的活动中的方法,但基本上textView更新是在UI线程上运行的,所以实际的更新必须在活动中发生..

这可能会有所帮助:https://developer.android.com/training/multiple-threads/communicate-ui.html

答案 1 :(得分:0)

你可以这样做:

  1. 来自服务的sendBroadcast(意图)。
  2. 在您的活动的onResume()中注册接收者,并在onPause()中取消注册接收者。
  3. 更新BroadcastReceiver的onReceive中的textview。