Java 屏幕冻结,应用程序退出
我试图在点击按钮后向mysql数据库发送一些信息,但我的屏幕冻结,然后退出。 代码如下:Java 屏幕冻结,应用程序退出,java,android,sql,Java,Android,Sql,我试图在点击按钮后向mysql数据库发送一些信息,但我的屏幕冻结,然后退出。 代码如下: b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { new SendInfo(email.getText().toString(
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
try
{
new SendInfo(email.getText().toString(),password.getText().toString());
}catch(Exception e){
error.setText((CharSequence) e);
}
}
});
下面是SendInfo类:
public SendInfo(String email, String pass) throws Exception
{
Connection conn = null;
String url = "jdbc:mysql://ip...:3306/"; // info changed
String dbName = "db"; //info changed
String driver = "com.mysql.jdbc.Driver";
String userName = "user"; //info changed
String password = "pass"; //info changed
String table = "users";
Class.forName(driver).newInstance();
DriverManager.setLoginTimeout(100);
conn = DriverManager.getConnection(url+dbName,userName,password);
Statement st = conn.createStatement();
java.util.Calendar cal = java.util.Calendar.getInstance();
java.util.Date utilDate = cal.getTime();
java.sql.Date sqlDate = new Date(utilDate.getTime());
st.executeUpdate("INSERT INTO users VALUES('1','Komal','asd',"+sqlDate+")");
conn.close();
}
我甚至没有使用我得到的值作为参数来简化操作,但它仍然不起作用。看起来下面这行代码导致了错误:
error.setText((CharSequence) e);
换成
error.setText(e.toString());
已修复。您的日志显示什么?是否显示“应用程序无响应”对话框?看起来您正试图在主线程上执行网络操作…看起来您正在UI线程上执行阻塞操作。那是玩火。UI线程是第三条轨道,触摸它,Android可能会当场决定炒掉你的应用程序。