Android:从非活动类更新TextView

时间:2016-04-06 21:09:36

标签: java android android-layout textview

我正在编写Android应用程序,我需要显示非活动类的一些结果。 基本上我的应用程序获取当前位置,活动和其他东西,并在那些我运行一些功能,例如检查用户之前是否在那个地方。 无论如何,一个intent触发了这些函数,在函数结束时我想用这些函数的结果更新TextView。

但除了MainActivity之外,它似乎没有任何作用。我尝试将TextView设置为静态,但这似乎不起作用,并且将结果返回到MainActivity是不可能的,因为它不是直接从MainActivity调用的。

有些人对如何解决这个问题有所了解吗? 这是我的第一个android项目,所以还有很多我不知道的事情。谢谢!

2 个答案:

答案 0 :(得分:0)

我不确切知道你的代码是什么样的,但是你有一个包含所有数据的模型类(例如,某种单例)吗?如果是这样,您可以在那里保存更新的文本,然后在回调方法中更新TextView。

如果这不符合您的要求,我会考虑重构您的代码,以便将您想要的文本发送回您的MainActivity。您提到该方法不是直接调用的,但您的计算是否可以将文本传递给中间类,并将其传递给MainActivity?

答案 1 :(得分:0)

您不应该更新ui drom后台线程。 如果要从后台线程更新ui,请使用Handlers,AsyncTask或使用其他一些线程概念。

如果你想更新服务或广播接收器的用户界面,例如你现在收到一条消息,请在广播的接收者现在更新ui使用sendBroadcast,并在你的活动中注册动态广播接收器,然后更新