В настоящее время я занимаюсь разработкой приложения для Android, которое включает функцию входа в систему.У меня есть база данных и PHP-SignUp-скрипт, который обрабатывает доступ к базе данных, настроен.Когда пользователь вводит свой адрес электронной почты и пароль, Activity вызывает метод от своего родителя и передает пароль.
public void checkCredentials(View view){
StringBuilder builder = new StringBuilder();
String emailInput = ((EditText)(findViewById(R.id.editTextEmail))).getText().toString();
String passwordInput = ((EditText)(findViewById(R.id.editTextPassword))).getText().toString();
try {
builder.append(URLEncoder.encode("password", "UTF-8"));
builder.append("=");
builder.append(URLEncoder.encode(passwordInput, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String emailOutput = PostScreenActivity.dataBaseAccess("signIn", builder.toString());
}
Этот метод отправляет POST в сценарий и возвращает имя пользователя, связанное с паролем.так что он может вернуть это методу вызывающего, который сравнивает его с введенным именем пользователя.
StringBuilder builder = new StringBuilder();
try {
URL url = new URL("https://database.de/url/to/script"+script+".php");
URLConnection connection = url.openConnection();
OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream());
osw.write(data);
BufferedReader reader = new BufferedReader((new InputStreamReader(connection.getInputStream())));
String line;
while ((line = reader.readLine()) != null){
builder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
Сначала у меня было это просто обычным методом, но я сразу же вывел приложение из строя, поэтому я посмотрел на SO, изменилприложение разрешает и помещает все это в асинхронный подкласс / внутренний класс.Теперь проблема в том, что мне нужно получить к нему доступ из трех разных действий, и ему нужно вернуть результаты, и ни одна из этих вещей не представляется возможной с асинхронной задачей.Я прочитал все, что нашел в Интернете, но так много разных слов сказано, и некоторые из них произошли так давно, что я не уверен, что делать и как подойти к этому.Является ли асинхронная задача даже правильным способом сделать это?Я действительно хочу сделать это правильно, так как он обрабатывает что-то столь же важное, как учетные данные для входа в систему ..