gpt4 book ai didi

java - 在多个 Activity 中使用 AsyncTask

转载 作者:行者123 更新时间:2023-12-02 06:03:20 25 4
gpt4 key购买 nike

我在正确使用 AsyncTask 时遇到问题。我使用 AsyncTask 与服务器通信。我在 AsyncTask doInBackground 中运行服务器连接。我的应用程序在后台监听,一旦捕获的消息使用publishProgress。然后我可以在我的应用程序中使用消息。在我的应用程序中,我正在登录服务器,如果成功,新 Activity 将启动。我还需要在新 Activity 中与服务器通信,但连接是在后台 AsyncTask 中创建的。我不知道如何通过新 Activity 中建立的连接进行通信。谁能给我建议吗?非常感谢!

请查看代码。我在 LoginUser 类中有此代码,成功登录服务器后新的 Activity 启动。

//init
private ConnectionClass mConnectClass;
private connectTask mTask;

//execute connectTask
mTask = new connectTask();
mTask.execute("");

public class connectTask extends AsyncTask<String, String, ConnectionClass> {
@Override
protected ConnectionClass doInBackground(String... message) {
Log.i("Terminal", "doInBackground.");

mConnectClass = new ConnectionClass(
new ConnectionClass.OnMessageReceived() {
@Override
// here the messageReceived method is implemented
public void messageReceived(String message) {
// this method calls the onProgressUpdate
publishProgress(message);
}
});
Log.i("Terminal", "Starting...");
mConnectClass.connectServer();
return null;
}

@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
answerFromServer = Arrays.toString(values);
// serverMessage.append("S: " + Arrays.toString(values) + "\n");
}
}

最佳答案

不要为此使用AsyncTask。您似乎想要长时间保持连接打开。 AsyncTask 只能用于持续 at most a few seconds 的任务。您可以考虑改用Service

关于java - 在多个 Activity 中使用 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22493701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com