gpt4 book ai didi

android - 如何在 doInBackground() 方法中定期检查 isCancelled()

转载 作者:行者123 更新时间:2023-11-30 01:30:05 24 4
gpt4 key购买 nike

我想取消异步任务并停止其后台执行,我在这个问题中找到了解决方案,:

Android - Cancel AsyncTask Forcefully

但实际上,我在 asynctask 中的代码是将一些数据上传/发布到服务器,我不知道如何使用 while 或 for loop根据上述问题的答案在此处打破语句

我的 AsyncTask 是:

private class Userdataupload extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String[] params) {
// do above Server call here


HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.example.com/example.php");

int mode = Activity.MODE_PRIVATE;
SharedPreferences my2 = getSharedPreferences("data", mode);
String u = my2.getString("name", "error");
String v = my2.getString("coin", "error");


List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("name", u));
nameValuePair.add(new BasicNameValuePair("coin", v));

try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

try {
HttpResponse response = httpClient.execute(httpPost);
// write response to log
//tdt(response.toString());
Log.d("Http Post Response:", response.toString());
} catch (ClientProtocolException e) {
// Log exception
e.printStackTrace();
} catch (IOException e) {
// Log exception
e.printStackTrace();
}

return null;
}

@Override
protected void onPreExecute()
{
pf = new ProgressDialog(MainActivity.this);
pf.setMessage("Loading User Data...");
pf.show();
pf.setCanceledOnTouchOutside(false);
pf.setCancelable(true);
}


@Override
protected void onPostExecute(String message) {
//process message
pf.cancel();

}
}

最佳答案

我想你会需要这个

在您的 doinbackground 方法中,在具有真值的 while 循环中运行您的代码 fragment 。

如果按下 iscancelled() 将其设置为 false 并且打破你的后台进程

方法是这样的

`int isExecxute=true;
While(isExecute){
//run your code
//cancelled break the loop and finish your execution
If (iscancelled()) isExecute=false;
}`

关于android - 如何在 doInBackground() 方法中定期检查 isCancelled(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35871233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com