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();

        }       

    }

ここに更新されたコードがあります。私が間違っているところを提案してください

ありがとう

4

1 に答える 1

4

ディスクとネットワークの操作をメインスレッドから遠ざけることで、よりスムーズで応答性の高いアプリケーションが実現します。

src:Android開発者リンク

UIスレッドでネットワーク操作を行わないでください。AsyncTaskを使用することをお勧めします/スレッドを実行します。これで問題が解決します。

于 2013-03-05T12:25:29.823 に答える