Java 为AlertDialog响应保留任务
我想为AlertDialog响应保留一个任务。我知道doInBackground方法中的UI交互是违反规则的,但在onPreExecute中不可能这样做Java 为AlertDialog响应保留任务,java,android,task,android-alertdialog,jsch,Java,Android,Task,Android Alertdialog,Jsch,我想为AlertDialog响应保留一个任务。我知道doInBackground方法中的UI交互是违反规则的,但在onPreExecute中不可能这样做 public static class AsyncMongoConnection extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... voids) { JSch jSch = n
public static class AsyncMongoConnection extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
JSch jSch = new JSch();
try {
Properties config = new Properties();
config.put("StrictHostKeyChecking", "false");
Session session = jSch.getSession("username", "host-address", 22);
//session.setPassword("password");
session.setConfig(config);
session.connect();
session.setPortForwardingL(27017, "host-address", 27017);
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017), Collections.singletonList(MongoCredential.createScramSha1Credential("user", "authdb", "password".toCharArray())));
FindIterable<Document> documents = mongoClient.getDatabase("database").getCollection("users").find();
Log.d("MongoClient", documents.iterator().next().toJson());
} catch (JSchException e) {
e.printStackTrace();
}
return null;
}
}
我已经通知过要实现一个响应对话框,但它不符合我的目的:(I)
谢谢你的帮助
塔里克只要使用
谢谢你的awnser。我学到了很多关于同步和等待/通知的知识。但是这个案例对我来说不是最好的,我找到了一个解决方法。谢谢!!!
public class SSHUserInfo implements UserInfo {
private String passphase = null;
private String password = null;
private Context context = null;
public SSHUserInfo(Context context) {
this.context = context;
}
@Override
public String getPassphrase() {
return passphase;
}
@Override
public String getPassword() {
return password;
}
@Override
public boolean promptPassword(String s) {
return false;
}
@Override
public boolean promptPassphrase(String s) {
return false;
}
@Override
public boolean promptYesNo(String s) {
return false;
}
@Override
public void showMessage(String s) {
}
}
@Override
public boolean promptPassword(String s) {
synchronized (someObject) {
// Notify GUI thread about password prompt
publishProgress();
// wait for password prompt to be submitted
wait();
}
return false;
}
@Override
public void onProgressUpdate (Progress... values)
{
// Do password prompt here
// And tell background thread, that we have a password already
synchronized (someObject) {
notify();
}
}