Java Can';t从onPostExecute运行新活动
在收到httpUrlConnection的响应后,启动mainActivity时遇到问题。 这是我的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
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只是我用来实例化新类的一个类。好吧,在尝试了两个小时的不同解决方案后,我终于解决了我的问题。正如您所说,我必须传递应用程序上下文。非常感谢!