将活动发送到非Android类

将活动发送到非Android类,android,Android,说到安卓系统的开发,我几乎是个傻瓜。我有一个活动,它有一个方法,可以将TextView的文本设置为作为参数提供的任何文本。我有第二个类,它是可运行的,我希望能够给它活动或以某种方式获得活动,这样它可以在需要时调用所述方法 此Runnable最终将连接到服务器,因此它可以使用来自服务器的信息更新应用程序。我以前做过客户机/服务器Java,所以这不是问题所在。我只需要弄清楚如何在这个Runnable和活动之间进行通信 起初,我只是想通过活动本身,但我读到,如果我这样做会产生问题。相反,我应该通过ge

说到安卓系统的开发,我几乎是个傻瓜。我有一个活动,它有一个方法,可以将TextView的文本设置为作为参数提供的任何文本。我有第二个类,它是可运行的,我希望能够给它活动或以某种方式获得活动,这样它可以在需要时调用所述方法

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

起初,我只是想通过活动本身,但我读到,如果我这样做会产生问题。相反,我应该通过getApplicationContext传入ApplicationContext。我这样做了,但现在我不知道如何处理ApplicationContext。我试着把它放到我的活动课上,但是程序崩溃了


如何实现我的目标?

Android中有几种处理线程的具体方法,如异步任务等,您应该仔细阅读如何实现“无痛”线程。如果它只是一个一次性任务,您可以连接到服务器,获取值,在TextView中设置它,然后完成,我认为异步任务将是您的最佳选择。持续的后台进程更适合于执行。

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

public SecondClass(YourActivity _yourActivity){
this.activity = _yourActivity;
//do stuff
}
SecondClass instance = new SecondClass(this);
在活动中,您可以像这样实例化您的类:

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

注意:在第二个类中,如果要更改应用程序的UI,可以使用runOnUiThreadRunnable方法

你能偶然发布代码吗?听起来你在代码结构中并没有遵循Android的最佳实践。为什么runnable试图直接在文本视图中设置文本?您是否应该为此使用AyncTask?还是服务?