将活动发送到非Android类

时间:2011-06-07 21:46:01

标签: android

在Android开发方面,我几乎是一个菜鸟。我有一个Activity,它有一个方法,几乎​​只是将TextView的文本设置为任何文本作为参数提供。我有一个第二个类,它是一个Runnable,我希望能够为它提供Activity(或以某种方式获取Activity),因此它可以在需要时调用所述方法。

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

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

我如何实现我的目标?

2 个答案:

答案 0 :(得分:0)

Android中有一些特定的方法来处理线索,例如AsyncTask等,你应该阅读如何做'无痛'线程here。如果只是连接到服务器的一次性任务,获取值,在TextView中设置然后完成,我认为AsyncTask将是您的最佳选择。持续的后台流程更适合services

答案 1 :(得分:0)

您可以将您的活动传递给第二个类的构造函数,如下所示:

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

在您的活动中,您可以像这样实现您的课程:

SecondClass instance = new SecondClass(this);

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