Java 我在android中遇到了AsyncTask类的问题
当AsyncTack类在后台运行时,我遇到了问题。代码完全运行,但问题是AsyncTask运行我的应用程序自动恢复时。 这是密码 BackTask.javaJava 我在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; }
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正在关闭您的活动。您应该通知任务中的活动,这可以通过使您的活动实现侦听器来实现。