2015-11-05 49 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不运行! –