Мое приложение не попадает внутрь блока "doInBackground" и останавливается в эмуляторе - PullRequest
0 голосов
/ 26 мая 2018

Я хочу создать соединение между активностью входа в систему (электронная почта и пароль) и моей локальной базой данных (сервер Xampp), поэтому я написал этот код.

Проблема в том, что приложение не показывает никаких ошибок илипредупреждения, но когда я запускаю его в эмуляторе, он останавливается в какой-то момент, я проверял много раз и обнаружил, что он не попадает внутрь функции "doInBackground".Я не знаю, почему

login_url="http://192.168.0.104/login.php";, где мой php-файл, содержащий запрос MySQL.

вот мой код LoginActivity:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.androidnetworking.AndroidNetworking;

public class LoginActivity extends AppCompatActivity {

    public EditText EditTextEmail,EditTextPassword;
    public String Email, Password;

    private String ador;

    public CardView loginButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        AndroidNetworking.initialize(getApplicationContext());


        EditTextEmail =(EditText) findViewById(R.id.emailField);
        EditTextPassword =(EditText) findViewById(R.id.passwordField);

        loginButton = (CardView) findViewById(R.id.loginButton);

        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Email = EditTextEmail.getText().toString().trim();
                Password = EditTextPassword.getText().toString().trim();
                Toast.makeText(LoginActivity.this,Email,Toast.LENGTH_LONG).show();

                loginBackgroundWorker li = new loginBackgroundWorker(LoginActivity.this);
                li.execute(Email,Password);
            }
        });

    }
}

вот мойloginBackgroundWorker class

import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

public class loginBackgroundWorker  extends AsyncTask<String,String,String> {
    Context context;

    public String email;
    public String password;

    public static final String login_url="http://192.168.0.104/login.php";


    public loginBackgroundWorker(Context context) {
        this.context = context;
    }

    @Override
    public void onPreExecute() {
        Toast.makeText(context,"preExecute",Toast.LENGTH_LONG).show();
    }

    @Override
    public String doInBackground(String... params) {

        Toast.makeText(context,"diInbackground",Toast.LENGTH_LONG).show();
        Toast.makeText(context,"diInbackground",Toast.LENGTH_LONG).show();

            try {
                email = params[0];
                password = params[1];
                URL url = new URL(login_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                String post_data = URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8")+"&"
                        +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
                bufferedWriter.write(post_data);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();


                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
                String result="";
                String line="";
                while((line = bufferedReader.readLine())!= null) {
                    result += line;
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return result;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        return null;
    }

    @Override
    public void onPostExecute(String result) {
        Toast.makeText(context,"Onpost",Toast.LENGTH_LONG).show();
        String r=result.trim();
        Boolean aBoolean = true;
        if (result.equals("1"))
        {
            Toast.makeText(context,"Bien Connecté",Toast.LENGTH_LONG).show();
           // Intent i = new Intent(context, MenuActivity.class);
            //i.putExtra("username",user_name);
           // context.startActivity(i);
            aBoolean =  false;
        }
        else if (result.equals(""))
            r = "Login ou mot de passe incorrect";

        if (aBoolean)
        {
            Toast.makeText(context,r,Toast.LENGTH_LONG).show();
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...