2013-03-05 102 views
2

我發送的登錄請求,Web服務,我已經啓用嚴格模式並獲得以下錯誤怎麼知道違反嚴格模式

03-05 16:54:36.490: E/AndroidRuntime(1106): FATAL EXCEPTION: main 
03-05 16:54:36.490: E/AndroidRuntime(1106): android.os.StrictMode$StrictModeViolation:  policy=95 violation=2 
03-05 16:54:36.490: E/AndroidRuntime(1106):  at android.os.StrictMode.executeDeathPenalty(StrictMode.java:1311) 
03-05 16:54:36.490: E/AndroidRuntime(1106):  at android.os.StrictMode.access$1300(StrictMode.java:112) 
03-05 16:54:36.490: E/AndroidRuntime(1106):  at android.os.StrictMode$AndroidBlockGuardPolicy.handleViolation(StrictMode.java:1304) 
03-05 16:54:36.490: E/AndroidRuntime(1106):  at android.os.StrictMode$AndroidBlockGuardPolicy$1.run(StrictMode.java:1191) 
03-05 16:54:36.490: E/AndroidRuntime(1106):  at andro 

如何得到什麼在這裏侵犯。

public class LoginActivity extends Activity implements ILoginDelegate { 

// Values for email and password at the time of the login attempt. 
private String mEmail; 
private String mPassword; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

      StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
      .detectAll().penaltyLog().penaltyDeath().build()); 

    //    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll() 
    //      .penaltyLog().penaltyDeath().build()); 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_login); 

    findViewById(R.id.sign_in_button).setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        attemptLogin(); 
       } 

      }); 
} 

public void attemptLogin() { 

     // Send login requesmEmail 
     try { 
      LoginManager manager = new LoginManager(this); 
      manager.sendLoginRequest(mEmail, mPassword); 
     } catch(Exception e) { 
       e.printStackTrace(); 

     }  

    } 

這是更新代碼。請建議我在哪裏做錯了

感謝

+0

的崩潰可能導致如果在您的Web登錄運行ui線程。調試器是另一種選擇。 – staaar 2013-03-05 11:57:39

+0

您可以添加源代碼如何添加Strictmode? – Yury 2013-03-05 12:16:49

+0

我附上了我的源代碼 – 2013-03-05 12:22:09

回答

4

保持磁盤和網絡操作關閉主線程進行了更平滑,反應更迅速的應用。

源:Android developers link

網絡運行不應該在UI thread.Recommended進行使用的AsyncTask /運行thread.This將解決你的問題

+0

StrictMode是一款開發者工具,可以檢測出您可能會意外做的事情,並將它們引起您的注意,讓您可以修復它們。這只是一個幫助開發人員的工具。一般不要使用嚴格模式。 – Meher 2013-03-05 12:27:49

+0

使用AsyncTask /運行一個線程來執行網絡操作。這將解決您的問題 – Meher 2013-03-05 12:31:29

+0

感謝您的評論。但我使用嚴格的模式因爲我的應用程序變得太慢了。所以要知道wat使得它太慢我應用 – 2013-03-05 12:31:56