我正在创建一个android应用程序,其中有一个使用mysql的登录系统。我正在使用一个线程进行登录。
private static boolean isValid = false;
public static boolean login(final String username, final String password) {
new Thread(new Runnable() {
@Override
public void run() {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection(
"jdbc:mysql://*****/***","*****","******");
Statement stmt=con.createStatement();
String query = "SELECT passHash FROM test WHERE username = '"+ username +"'";
ResultSet rs=stmt.executeQuery(query);
System.out.println(query + " <----");
while(rs.next()) {
isValid = BCrypt.checkpw(password, rs.getString(1));
System.out.println(isValid + "<.daspdfsafpa");
}
System.out.println(isValid +" 1");
con.close();
System.out.println(isValid +" 2");
}
catch(Exception e)
{
System.out.println(e);
}
}
}).start();
try{
Thread.currentThread().join();
}
catch(InterruptedException e){
System.out.println(e.getMessage());
}
System.out.println("blafasf");
return isValid;
}
当我使用 Thread.currentThread.join();
应用程序从不运行 return isValid;.
所以当我使用 .join()
,如果我将其删除,则该方法将在线程完成之前返回。如何解决此问题?
我希望该方法在返回 isValid
在方法的底部。
有什么想法吗?
我还在寻找解决办法。我怎样才能让这是另一种让它继续工作的方法?
暂无答案!
目前还没有任何答案,快来回答吧!