我在android中有AsyncTask类的prolblem

时间:2017-03-26 01:37:15

标签: java android android-asynctask

我在asyncTack类在后台运行时遇到问题。完全运行但是AsyncTask运行我的应用程序自动恢复时出现问题。  这是代码

BackTask.java

public class BackTask extends AsyncTask<String, Void,String> {

    Context context;

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

    @Override
    protected String doInBackground(String... strings) {

        String method = strings[0];


        if (method.equals("register")) {

            String lang = strings[1];
            String lat = strings[2];
            Log.i("Check:", lang + " " + lat);
            try {
                URL url = new URL("https://wishes4u.000webhostapp.com/API/signup.php");
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoInput(true);
                httpURLConnection.setDoOutput(true);

                OutputStream outputStream = httpURLConnection.getOutputStream();
                OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
                BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);

                String data = URLEncoder.encode("lang", "UTF-8") + "=" + URLEncoder.encode(lang, "UTF-8") + "&"
                        + URLEncoder.encode("lat", "UTF-8") + "=" + URLEncoder.encode(lat, "UTF-8");

                bufferedWriter.write(data);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();

                InputStream inputStream = httpURLConnection.getInputStream();
                inputStream.close();
                return "Registration Success!";


            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }


        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        if (s.equals("Registration Success!")){
            Toast.makeText(context,"Registration Success!",Toast.LENGTH_SHORT).show();
        }
    }

}

Main_Activity.java

  public void registerUser(View view) {

        regEmail = email.getText().toString();         
        regPassword = password.getText().toString();

        String method = "register";
        BackTask backTask = new BackTask(this);
        backTask.execute(method, regEmail, regPassword);
        finish();

    }

我在android 4.4.2(kitkat)上运行应用程序。

我不知道问题在哪里....

0 个答案:

没有答案