Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t从onPostExecute运行新活动_Java_Android_Android Asynctask - Fatal编程技术网

Java Can';t从onPostExecute运行新活动

Java Can';t从onPostExecute运行新活动,java,android,android-asynctask,Java,Android,Android Asynctask,在收到httpUrlConnection的响应后,启动mainActivity时遇到问题。 这是我的onPostExecute方法 protected void onPostExecute(String[] result) { serv.httphelper.handleResults(result); } 在handleResult()方法中,我处理响应代码。如果响应代码是200,我想在loginActivity类中运行一个新方法 public void h

在收到httpUrlConnection的响应后,启动mainActivity时遇到问题。 这是我的onPostExecute方法

    protected void onPostExecute(String[] result) {
        serv.httphelper.handleResults(result);

    }
在handleResult()方法中,我处理响应代码。如果响应代码是200,我想在loginActivity类中运行一个新方法

public void handleResults(String[] result) {

    status = result[0].toString();
    instructions = result[1].toString();
    jsonString = result[2];

    Log.d("DEBUG", status);

    if (status.equals("200")) {
        serv.loginActivity.proceed();

    } else if (status.equals("400")) {
        serv.loginActivity.loginError();

    } else if (status.equals("401")) {
        serv.loginActivity.loginError();

    }

}
当我尝试从procedure()方法启动一个新活动时,我得到一个nullpointerexception

    public void proceed(){
    startActivity(new Intent (LoginActivity.this, MainActivity.class));
    Log.d("TEST", "Proceed success");


}
我为任何想知道:

public class Service {

public static HttpHelper httphelper = new HttpHelper();
public static HttpConnect conn = new HttpConnect();
public static LoginActivity loginActivity = new LoginActivity();
}

这是我的日志:


提前谢谢

您的问题是当您在以下行开始活动时:

startActivity(new Intent (LoginActivity.this, MainActivity.class));
好吧,您创建了一个意图,试图达到
后勤活动。这个
可能不存在
相反,您必须给出当前正在运行的真实活动的实例

我建议您的解决方案是将当前正在运行的活动的实例传递给
procedure()
,并将其替换为
LoginActivity。这将


如果您没有当前活动,请尝试放置应用程序的上下文,并将其添加为新任务的标志。

您的异步任务在哪个活动中?什么是“serv”?我的AsyncTask本身就在一个类中,叫做HttpConnect,而serv只是我用来实例化新类的一个类。好吧,在尝试了两个小时的不同解决方案后,我终于解决了我的问题。正如您所说,我必须传递应用程序上下文。非常感谢!