Java 我在android中遇到了AsyncTask类的问题

Java 我在android中遇到了AsyncTask类的问题,java,android,android-asynctask,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; }

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

}
  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)上运行该应用程序


我不知道哪里出了问题

你需要更好地解释到底出了什么问题。它会崩溃吗?如果是这样,请张贴日志。它不起作用吗?什么不起作用,你期望什么,它在做什么?它在做什么奇怪的事吗?这到底是什么?我不理解您的问题,但在执行
executes()
之后调用
finish()
时应该小心。您的
反向任务可以在活动结束后完成。这个finish方法基本上告诉Android他可以关闭你的活动。你能更好地解释一下你想要实现什么吗?@Gabeschen没有应用程序崩溃,工作正常,但当AsyncTask类运行时,应用程序最小化(恢复)。活动正在关闭,因为你正在调用finish。如果您不想这样做,请删除该调用。在执行后删除该
finish()
。如果我正确理解了您的问题,现在发生的情况是,您的任务异步代码正在执行,而android正在关闭您的活动。您应该通知任务中的活动,这可以通过使您的活动实现侦听器来实现。您需要更好地解释出现了什么问题。它会崩溃吗?如果是这样,请张贴日志。它不起作用吗?什么不起作用,你期望什么,它在做什么?它在做什么奇怪的事吗?这到底是什么?我不理解您的问题,但在执行
executes()
之后调用
finish()
时应该小心。您的
反向任务可以在活动结束后完成。这个finish方法基本上告诉Android他可以关闭你的活动。你能更好地解释一下你想要实现什么吗?@Gabeschen没有应用程序崩溃,工作正常,但当AsyncTask类运行时,应用程序最小化(恢复)。活动正在关闭,因为你正在调用finish。如果您不想这样做,请删除该调用。在执行后删除该
finish()
。如果我正确理解了您的问题,现在发生的情况是,您的任务异步代码正在执行,而android正在关闭您的活动。您应该通知任务中的活动,这可以通过使您的活动实现侦听器来实现。