我有一个在AsyncTask中的doInBackground中运行一些方法,它调用webservices并将数量的记录插入数据库,同一用户点击其他屏幕然后outOfmemoryError即将到来我想暂时停止后台线程直到屏幕加载然后线程必须从它恢复停止,以便内存将释放。任何人都可以告诉我如何实现这一目标。 在此先感谢。
答案 0 :(得分:0)
Asynctask只能执行一次(如果尝试第二次执行会抛出异常。)..所以要暂停和恢复..我认为你应该使用backgroundthread代替......
答案 1 :(得分:0)
//decleration
ProgressDialog dialog;
//onCreate
dialog = new ProgressDialog(ActivityName.this);
public class BackGroundTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
//perform background task
return null;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
dialog.setMessage("Please wait.....");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
}
@Override
protected void onPostExecute(String sResponse) {
if (dialog.isShowing())
{
dialog.dismiss();
}
}