发送活动给非Android类

问题描述:

当谈到Android开发时,我几乎是一个noob。我有一个Activity,它有一个方法,几乎​​只是将TextView的文本设置为提供的任何文本作为参数。我有第二个类,它是一个Runnable,我希望能够给它一个Activity(或以某种方式获取Activity),因此它可以在需要时调用该方法。发送活动给非Android类

此Runnable最终将与服务器连接,因此它可以使用来自服务器的信息更新应用程序。我之前已经完成了客​​户端/服务器Java的东西,所以这不是问题。我只需要弄清楚如何在这个Runnable和Activity之间进行通信。

本来我只是通过活动本身,但我读到它会产生问题,如果我这样做。相反,我本应通过getApplicationContext()传递一个ApplicationContext。我这样做了,但现在我不知道如何处理ApplicationContext。我尝试将它转换为我的Activity类,但程序只是崩溃。

我该如何实现我的目标?

+1

您可以发布代码 偶然? – Terrance 2011-06-07 21:51:14

+0

这听起来不像您在您的代码结构中遵循Android最佳实践。为什么可运行的尝试直接在文本视图中设置文本?你应该为此使用AyncTask吗?还是服务? – 2011-06-07 21:57:59

Android中有几种处理线程的特定方法,如AsyncTask s等,您应该了解如何执行“无痛”线程here。如果它只是连接到服务器的一次性任务,请获取该值,将其设置为TextView,然后完成,我认为AsyncTask将是您的最佳选择。持续的后台进程更适合于services

你可以通过你的活动,你的第二类像这样的构造:

public SecondClass(YourActivity _yourActivity){ 
this.activity = _yourActivity; 
//do stuff 
} 

,并在你的活动,您可以实例化类是这样的:

SecondClass instance = new SecondClass(this); 

注:在您的SecondClass中,如果您想更改应用程序的UI,可以使用方法runOnUiThread(Runnable);