Java 为AlertDialog响应保留任务

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

我想为AlertDialog响应保留一个任务。我知道doInBackground方法中的UI交互是违反规则的,但在onPreExecute中不可能这样做

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