【发布时间】:2015-06-21 11:15:04
【问题描述】:
我需要从 AsyncTask 的 onPosExecute 方法开始另一个活动。 AsyncTask 是一个单独的类,不在任何活动类中。
我使用了一个接口来做到这一点。代码是:
这是 onPostExecute() 方法
@Override
protected void onPostExecute(String json) {
Log.v("JSON", json);
Log.v("updateUI",""+updateUI);
updateUI.changeActivity();
}
这是界面
public interface UpdateUIListener {
public void changeActivity();
}
这是实现接口的activity类的一部分
@Override
public void changeActivity() {
Intent blah=new Intent(this,SplashActivity.class);
startActivity(blah);
finish();
}
当我运行代码时,出现空指针异常,在该行
Intent blah=new Intent(this,SplashActivity.class);
我的堆栈跟踪是:
java.lang.NullPointerException
at android.content.ContextWrapper.getPackageName(ContextWrapper.java:135)
at android.content.ComponentName.<init>(ComponentName.java:75)
at android.content.Intent.<init>(Intent.java:3546)
at com.autofoyer.SignUpActivity.changeActivity(SignUpActivity.java:79)
at com.autofoyer.common.MyClientTask.onPostExecute(MyClientTask.java:73)
at com.autofoyer.common.MyClientTask.onPostExecute(MyClientTask.java:23)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5099)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:803)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570)
at dalvik.system.NativeStart.main(Native Method)
我需要知道是什么原因造成的以及如何解决空点异常。我需要从 onPostExecute 方法开始和活动。提前致谢!
【问题讨论】:
-
显示你的 AsyncTask 的完整代码以及它是如何从 Activity/Fragment 调用的
标签: android interface android-asynctask