Heya - 我想從onPostExecute()中擴展AsyncTask的類中調用startActivity()。在實例方法內調用startActivity() - 導致一個空指針異常
這裏的流量:
類,它擴展的AsyncTask:
protected void onPostExecute() {
Login login = new Login();
login.pushCreateNewOrChooseExistingFormActivity();
}
類,它擴展活動:
public void pushCreateNewOrChooseExistingFormActivity() {
// start the CreateNewOrChooseExistingForm Activity
Intent intent = new Intent(Intent.ACTION_VIEW);
**ERROR_HERE*** intent.setClassName(this, CreateNewOrChooseExistingForm.class.getName());
startActivity(intent);
}
而且我得到這個錯誤...每次:
03-17 16:04:29.579: ERROR/AndroidRuntime(1503): FATAL EXCEPTION: main
03-17 16:04:29.579: ERROR/AndroidRuntime(1503): java.lang.NullPointerException
03-17 16:04:29.579: ERROR/AndroidRuntime(1503): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
03-17 16:04:29.579: ERROR/AndroidRuntime(1503): at android.content.ComponentName.(ComponentName.java:62)
03-17 16:04:29.579: ERROR/AndroidRuntime(1503): at android.content.Intent.setClassName(Intent.java:4850)
03-17 16:04:29.579: ERROR/AndroidRuntime(1503): at com.att.AppName.Login.pushCreateNewOrChooseExistingFormActivity(Login.java:47)
對於iOS d evelopers - 我只是試圖推動一個新的視圖控制器到一個導航控制器的棧la pushViewController:animated:
。這顯然 - 在這個平臺上很難做到。
任何想法?提前致謝!
更新 - 修正:
每@Falmarri建議,我設法解決這個問題。
首先,我不再調用Login login = new Login();
來創建一個新的登錄對象。壞。壞。壞。沒有cookie。
而是準備打電話時.execute()
,本教程(appfulcrum.com/?p=126),建議傳遞ApplicationContext來班上執行的AsyncTask,我的目的,如下圖所示:
CallWebServiceTask task = new CallWebServiceTask();
// pass the login object to the task
task.applicationContext = login;
// execute the task in the background, passing the required params
task.execute(login);
現在,在onPostExecute()
,我可以讓我的登錄對象,像這樣的方法:
((Login) applicationContext).pushCreateNewOrChooseExistingFormActivity();
((Login) applicationContext).showLoginFailedAlert(result.get("httpResponseCode").toString());
...
希望這可以幫助別人那裏!尤其是iOS開發transistioning到安卓...
你是否在'AndroidManifest.xml'中聲明瞭你的活動? – Malcolm 2011-03-17 21:43:23
Android!= iPhone請確保您已閱讀並理解Android基礎知識,並在其中解釋Android的主要部分(即活動)。沒有導航控制器或視圖控制器的概念。這並不意味着你想要做的事情很難,它與iPhone的方式截然不同。 http://developer.android.com/guide/topics/fundamentals.html – 2011-03-17 22:31:01
@Malcolm,是: ... ... @Mayra,會做 - 回到繪圖板! –
Cole
2011-03-18 15:31:27