從onPostexecute()啓動活動我需要從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();
}
而這正是該接口被實現活性類的部分
@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調用 – Viacheslav