2010-05-12 81 views
1

當我的應用程序啓動時,它會檢查它是否存儲了登錄憑據。如果沒有,它會啓動另一個活動來提示用戶輸入這些憑證。我的問題是,當提示活動開始後,第一個活動繼續執行,因爲提示活動尚未恢復所需要的數據android:暫停一個活動,直到另一個完成

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    tv = new TextView(this); 
    setContentView(tv); 

    promptForLoginInfo(); //method creates intent and starts activity 

    displayCredentials(); //prints data to screen 
} 

輸出讀取與空指針結束了:「空」,因爲程序在登錄提示活動返回之前執行「displayCredentials()」。

任何人都有線索該怎麼辦?

回答

5

您的「promptForLoginInfo()」方法應該調用startActivityForResult。您的「displayCredentials()」方法不應在onCreate()方法中調用,而應在onActivityResult方法中調用。

+0

謝謝。現在,這個問題已經解決了,我們就不得不繼續下一步 – mtmurdock 2010-05-12 18:28:01

0

您是否曾嘗試在調用displayCredentials()之前檢查存儲的憑據?如果未找到憑證,可以通過startActivityForResult()方法啓動活動,並在onActivityResult()中的提示活動完成後調用displayCredentials()。

1

在promptForLoginInfo();你需要啓動activityForResult。 然後你需要移動displayCredentials();從onCreate到onActivityResult

相關問題