在我从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()方法启动一个新活动时,我得到一个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();
}
这是我的logCat:
提前致谢!
答案 0 :(得分:0)
您的问题是当您在该行开始活动时:
startActivity(new Intent (LoginActivity.this, MainActivity.class));
好吧,你创建了一个试图转到可能不存在的LoginActivity.this
的意图!
除此之外,您必须提供当前正在运行的实际活动的实例。
我建议您使用的解决方案是将proceed()
当前正在运行的活动的实例传递给LoginActivity.this
而不是{{1}}。
如果您没有当前活动,请尝试放置应用程序的上下文,并将其添加为新任务的标志。