2015-11-05 52 views
0

對不起,我的簡單問題,我是Android的初學者。當我使用SharedPreferences時,我的應用程序崩潰!這裏是我的代碼,請幫助我,非常感謝。強制關閉時使用SharedPreferences

public class getToken extends AsyncTask<String, String, String> { 
    protected void onPreExecute() { 
     super.onPreExecute(); 

    }@Override 
    protected String doInBackground(String... strings) { 
     try { 
      postTextandGetRespons("xxxxx/Service/register.php"); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
    @Override 
    protected void onPostExecute(String responseStr) { 
     String[] parts = responseString.split(":"); 
     success = parts[0]; 
     token = parts[1]; 
     if (success.equals("success")) { 
      SaveToken(); 
     } 
    } 
    public void SaveToken() { 
     SharedPreferences token_save = getSharedPreferences("token_key", register.MODE_PRIVATE); 
     SharedPreferences.Editor editior2 = token_save.edit(); 
     editior2.putInt("token",Integer.valueOf(token)); 
     editior2.commit(); 
    } 
} 
+1

什麼是錯誤?把你的logcat –

回答

1

SharedPreferences是使你的應用程序崩潰,但事實是,你們doInBackground被返回null。這是使你的應用程序崩潰的線是

String[] parts = responseString.split(":"); 

因爲doInBackground確實

return null; 
} 

如果postTextandGetRespons回報你應該做的

@Override 
protected String doInBackground(String... strings) { 
    try { 
     return postTextandGetRespons("xxxxx/Service/register.php"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

onPostExecute檢查agains NPE一個字符串。例如。

@Override 
protected void onPostExecute(String responseStr) { 
    if (TextUtils.isEmpty(responseStr)) { 
     Log.e("", " responseStr null"); 
     return; 
    } 
    String[] parts = responseString.split(":"); 
+0

嗨,我還有問題:-( –

+0

它甚至是什麼意思? – Blackbelt

+0

嘿Blackbely看起來,現在我認爲doInBackground在我的AsyncTask不運行! –