我一直在試圖爲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