AlertDialogレスポンスのタスクを保持したいと考えました。私は、doInBackgroundメソッドのUIのやりとりがルールと違うのは分かっていますが、onPreExecuteで行うことはできません。AlertDialogレスポンスの保持タスク
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;
}
}
ご覧のとおり、ローカルデバイスからリモートホストアドレスへのポート転送を作成したかったのです。しかし、StrictHostKeyCheckingを有効にしたいのですが、これは大きなセキュリティ上の問題です。私の問題は、今セッションのUserInfoを実装することです。私はそれをあらかじめ保存したくなければ、ユーザーにパスワードを要求する必要があります。また、リモートホストのフィンガープリントがわからない場合、ユーザーに警告するダイアログを作成することもできません。この場合はそうではありません。実装ではpromptPasswordを実装に使用したいと思っていましたが、警告ダイアログの応答を待つことはできません。実際は効率的ではないwhileループが必要です。私はブール値を返すpromptPasswordメソッドが待っています。
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) {
}
}
私はすでにAlertDialogを待っている応答を実装について知らさが、それは私:(あなたの助けのための
おかげで、私の目的に適合していません!
タリク
awnserありがとうございました。同期と待機/通知について多くのことを学びました。しかし、このケースは私のためのベストではない、私は回避策を見つけた。ありがとうございました!!! – LenovoCrafter