我一直在试图为Android编写一个简单的3类java应用程序,但我无法弄清楚一件事。如何解决在类之间传递数据的问题?在我来说,我有3类:在Java类之间进行通信
- 等待数据
- 一个插座上解析数据
- 写在屏幕上的数据
第三类不能做网络部分,因为它涉及一个无法在Activity类中完成的等待循环。
那么我应该怎么做?
我一直在试图为Android编写一个简单的3类java应用程序,但我无法弄清楚一件事。如何解决在类之间传递数据的问题?在我来说,我有3类:在Java类之间进行通信
第三类不能做网络部分,因为它涉及一个无法在Activity类中完成的等待循环。
那么我应该怎么做?
您可以定义一个由“屏幕上写入”类实现的“Listener”,以及“parses-the-data”类用于与之通话的Listener。例如:
class Parser {
private ParsingFinishedListener callback;
public Parser(ParsingFinishedListener c) {
this.callback = c;
}
//some code
public void parse(String stuffToParse) {
//code
callback.onTextParsed(parsedText);
}
public interface ParsingFinishedListener {
public void onTextParsed(String textToVizualize);
}
}
class MyTask extends AsyncTask<Void, Void, Void> {
private ParsingFinishedListener callback;
public MyTask(ParsingFinishedListener c) {
this.callback = c;
}
..doInBackground..
..onPostExecute(String result) {
Parser p = new Parser(callback);
p.parse(result);
}
}
class MyActivity extends Activity implements ParsingFinishedListener {
...onCreate(...) {
...
MyTask task = new MyTask((ParsingFinishedListener) this);
task.execute();
}
//some code
@Override
public void onTextParsed(String result) {
//do something with the result
}
}
您在解析器定义你的听众,并完成解析的时候,你用它去的活动,这应该已经实现了它。
您可以使用广播接收器或监听器 – Revathi 2014-10-01 13:57:13
您需要定义“Java类之间的通信”的含义。你正在关于数据或事件还是其他事情? – Simon 2014-10-01 14:19:10
使用处理程序。 https://developer.android.com/reference/android/os/Handler.html – Karakuri 2014-10-01 14:45:45