Android - 当Asynctask完成后进入下一个Activity

3

我一直在尝试创建一个简单的应用程序,用于向PHP服务器发送POST请求。我想创建一个单一的类来处理所有的POST请求,并将数据返回给原始活动。

目前,我有一个名为ConectionHandler的类,旨在处理所有POST请求。

public class ConnectionHandler extends AsyncTask<String, Void, String> {

public ConnectionHandler(ArrayList targetList, ArrayList dataList, String hostLocation){
    ...
}

protected String doInBackground(String... params){
    ...
    return returnData;
}

我已经从loginActivity中创建了ConnectionHandler对象。一旦我在doInBackground方法中接收到数据,我希望它返回到loginActivity,以便我可以处理它并启动新的activity。
有没有简单的方法可以做到这一点?我尝试了许多不同的想法,但目前还没有任何一个可行。
1个回答

2

你尝试过在AsyncTask中使用onPostExecute方法吗?当你从doInBackground返回一个值时,它会被发送到运行在主UI线程上的onPostExecute方法。

public class ConnectionHandler extends AsyncTask<String, Void, String> {

    public ConnectionHandler(ArrayList targetList, ArrayList dataList, String hostLocation){
        ...
    }

    protected String doInBackground(String... params){
        ...
        return returnData;
    }

    @Override
    protected void onPostExecute(String result) {
       //do whatever you want with the data here 
    }    
}

我确实尝试过。我无法弄清如何引用登录活动(loginActivity)中的"getApplicationContext"等内容。是否有办法使其工作? - Hirsh
所以你遇到了上下文的问题?你可以通过构造函数将其传递给异步任务。 - Rich Luick
我可以从onPostExecute方法开始一个意图吗?我一直在尝试这样做,但我不知道要传递什么作为第一个参数。如果有办法做到这一点,那比使用应用程序上下文好得多。谢谢! - Hirsh
尝试在第一个参数中使用CurrentActivity.this,其中CurrentActivity是您所在活动的名称。 - Rich Luick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接