0

从 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();

    }

}

当我尝试从proceed()方法开始一个新活动时,我得到一个空指针异常

    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();

}

这是我的 logCat: 日志猫

提前致谢!

4

1 回答 1

0

您的问题是当您在线上开始活动时:

startActivity(new Intent (LoginActivity.this, MainActivity.class));

好吧,您创建了一个意图,试图到达LoginActivity.this可能不存在的意图!
取而代之的是,您必须提供当前正在运行的真实活动的实例。

我可以建议您的一个解决方案是传递给proceed()当前正在运行的活动的实例并将其而不是LoginActivity.this.
如果您没有当前活动,请尝试将应用程序的上下文改为并将其添加为新任务的标志。

于 2013-10-27T14:07:45.287 回答