【问题标题】:how to know violation in strict mode如何在严格模式下知道违规
【发布时间】:2013-03-05 11:40:26
【问题描述】:

我正在向 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();

        }       

    }

这里是更新的代码。请提出我做错的地方

谢谢

【问题讨论】:

标签: android android-strictmode


【解决方案1】:

使磁盘和网络操作脱离主线程可以使应用程序更加流畅、响应速度更快。

src :Android developers link

不应该在 UI 线程上进行网络操作。建议使用 AsyncTask /Run a thread。这将解决您的问题

【讨论】:

  • StrictMode 是一种开发人员工具,它可以检测您可能不小心做的事情,并提醒您注意,以便您进行修复。这只是一个帮助开发者的工具。一般不要使用严格模式。
  • 使用AsyncTask / 运行一个线程做网络操作。这将解决你的问题
  • 感谢您的评论。但我使用了严格模式,因为我的应用程序变得太慢了。所以要知道 wat 让它太慢了,我应用了它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 2020-03-22
  • 2013-08-10
  • 2017-02-25
  • 2011-09-12
  • 1970-01-01
相关资源
最近更新 更多