2011-05-11 68 views
0

好吧,看看這個源代碼:安卓:getSharedPreferences會話

public void checkSession() { 
    SharedPreferences session = getSharedPreferences(PREFS_NAME, 1); 
    String getSession = session.getString("SESSION", null); 
    Toast.makeText(this, getSession, Toast.LENGTH_SHORT).show(); 
    if(getSession.length() > 30) { 
     Intent menu = new Intent(this, menu.class); 
     startActivity(menu); 
     finish(); 
    } 
    else 
    { 
    } 
} 

的問題是「用戶第一時間」得到美眉。

當我禁用該功能時,運行應用程序並登錄代碼創建會話。之後,當我註銷,並重新啓動應用程序 - 沒有問題。有任何想法嗎?

回答

2

第一次運行應用程序,並且您沒有存儲在SharedPreference「SESSION」中的值將作爲默認值返回null。 getSession()。長度將導致NullPointerException。

你應該做的是這樣,而不是:

String getSession = session.getString("SESSION", ""); 
+1

Toast.makeText(這,的getSession,Toast.LENGTH_SHORT).show();實際上不會導致崩潰。可以將null作爲消息發送給吐司。但它對用戶來說不會很有用。 :) – TofferJ 2011-05-11 12:55:46

1

如果getSession爲null,我認爲Toast.makeText會翻倒。 *您可能希望將默認返回值從null更改爲「」。如果getSession爲null,則getSession.length()將不起作用。

*顯然這不是真的 - 請參閱TofferJ的評論。