Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android异步任务保持挂起运行状态_Android_Android Asynctask - Fatal编程技术网

android异步任务保持挂起运行状态

android异步任务保持挂起运行状态,android,android-asynctask,Android,Android Asynctask,嗨,谢谢你的关注 有人能帮我吗?我的应用程序保持progressdialog处于活动状态,asynctask保持挂起运行状态。我尝试在执行异步任务后取消它,但不起作用 公共类MttoBitacoraFragment扩展了片段{ ListView lv; AutoCompleteTextView actEmpleado,actEstatus, actDepto; List<Autcompletecls> listEmpelado= new ArrayList<Autcompl

嗨,谢谢你的关注

有人能帮我吗?我的应用程序保持progressdialog处于活动状态,asynctask保持挂起运行状态。我尝试在执行异步任务后取消它,但不起作用

公共类MttoBitacoraFragment扩展了片段{

ListView  lv;
AutoCompleteTextView actEmpleado,actEstatus, actDepto;
List<Autcompletecls> listEmpelado=  new ArrayList<Autcompletecls>();
List<Autcompletecls> listEstatus=  new ArrayList<Autcompletecls>();
List<Autcompletecls> listDepto=  new ArrayList<Autcompletecls>();
AutocompleteAdapter adpEmpleado, adpEstatus, adpDepto;
ProgressDialog dialog;
WS webservice;

public MttoBitacoraFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view=inflater.inflate(R.layout.fragment_mtto_bitacora, container, false);
    String[][] para = new String[0][0];

    actEmpleado = (AutoCompleteTextView)view.findViewById(R.id.actMttoProblemaEmpleado);
    actEstatus =(AutoCompleteTextView)view.findViewById(R.id.actMttoProblemaEstatus);
    actDepto=(AutoCompleteTextView)view.findViewById(R.id.actMttoProblemaDepto);


    ansyWS call = new ansyWS("ConEmpleadoDLL", para);
    call.execute();
    call.cancel(true);
    while(call.getStatus() == AsyncTask.Status.RUNNING)
    {
        call.cancel(true);
    }

    if(call.getStatus() != null || call.getStatus() == AsyncTask.Status.RUNNING) {
        call.cancel(true);
        ansyWS call2 = new ansyWS("ConEstatusDLL",para);
        call2.execute();
        call2.cancel(true);
    }
    else {
        ansyWS call2 = new ansyWS("ConEstatusDLL",para);
        call2.execute();
        call2.cancel(true);
    } 


   actEmpleado.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
           Autcompletecls item = listEmpelado.get(position);
           Toast.makeText(getContext(), item.getId(), Toast.LENGTH_SHORT).show();
       }
   });

    actEstatus.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Autcompletecls item = listEstatus.get(position);
            Toast.makeText(getContext(), item.getId(), Toast.LENGTH_SHORT).show();
        }
    });
    return view;
}


class ansyWS extends AsyncTask<String,String,String>{
    private volatile boolean running = true;
    String[][] parametros;
    String methodname;
    SoapObject resultado;

    public ansyWS(String _methodname, String[][] _parametros)
    {
        methodname = _methodname;
        parametros = _parametros;
    }

    @Override
    protected void onPreExecute() {
        dialog = new ProgressDialog(getActivity());
        dialog.setMessage(getResources().getString(R.string.dialog_message_save));
        dialog.setIndeterminate(false);
        dialog.setCancelable(false);
        dialog.show();
    }

    @Override
    protected String doInBackground(String... params) {
        webservice = new WS();
        resultado = webservice. LlamaWS(methodname,parametros);
        dialog.dismiss();
        if (resultado != null) {
            for (int i = 0; i < resultado.getPropertyCount(); i++) {
                SoapObject datos = (SoapObject) resultado.getProperty(i);
                switch (methodname) {
                    case "ConEmpleadoDLL":
                        listEmpelado.add(new Autcompletecls(datos.getProperty(0).toString(), datos.getProperty(1).toString()));
                        break;
                    case "ConEstatusDLL":
                        listEstatus.add(new Autcompletecls(datos.getProperty(0).toString(), datos.getProperty(1).toString()));
                        break;
                }

            }
            return methodname;
        } else {
            return "error";
        }
    }

    @Override
    protected void onPostExecute(String s) {
        while(running) {
            switch (s) {
                case "ConEmpleadoDLL":
                    actEmpleado.setThreshold(0);
                    adpEmpleado = new AutocompleteAdapter(getContext(), R.layout.activity_main, R.id.tv_autocomplete_text, listEmpelado);
                    actEmpleado.setAdapter(adpEmpleado);
                    break;
                case "ConEstatusDLL":
                    actEstatus.setThreshold(0);
                    adpEstatus = new AutocompleteAdapter(getContext(), R.layout.activity_main, R.id.tv_autocomplete_text, listEstatus);
                    actEstatus.setAdapter(adpEstatus);
                    break;
            }
        }
        cancel(true);
        dialog.dismiss();
    }

    @Override
    protected void onCancelled() {
        running = false;
        super.onCancelled();
    }
}


@Override
public void onDestroy() {
    super.onDestroy();
    Log.i("SomeTag", System.currentTimeMillis() / 100L + "  onDestory()");
}
ListView-lv;
自动完成文本视图actEmpleado、actEstatus、actDepto;
List listemplado=new ArrayList();
List ListStatus=新建ArrayList();
List listDepto=new ArrayList();
自动完成适配器adpEmpleado、adpEstatus、ADPEPTO;
进程对话;
WS-webservice;
公共MttoBitacoraFragment(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u mtto\u bitacora,容器,假);
字符串[][]para=新字符串[0][0];
actemplado=(AutoCompleteTextView)view.findviewbyd(R.id.actmttoproblemo);
actEstatus=(AutoCompleteTextView)view.findviewbyd(R.id.actMttoProblemaEstatus);
actDepto=(AutoCompleteTextView)view.findviewbyd(R.id.actMttoProblemaDepto);
ansyWS call=新的ansyWS(“Conemployodll”,第2段);
call.execute();
call.cancel(true);
while(call.getStatus()==AsyncTask.Status.RUNNING)
{
call.cancel(true);
}
if(call.getStatus()!=null | | call.getStatus()==AsyncTask.Status.RUNNING){
call.cancel(true);
ansyWS call2=新的ansyWS(“ConEstatusDLL”,第2段);
call2.execute();
call2.取消(true);
}
否则{
ansyWS call2=新的ansyWS(“ConEstatusDLL”,第2段);
call2.execute();
call2.取消(true);
} 
ActTempleADO.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Autcompletecls项目=Listemplado.get(位置);
Toast.makeText(getContext(),item.getId(),Toast.LENGTH_SHORT).show();
}
});
actEstatus.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Autcompletecls项=ListStatus.get(位置);
Toast.makeText(getContext(),item.getId(),Toast.LENGTH_SHORT).show();
}
});
返回视图;
}
类ansyWS扩展异步任务{
private volatile boolean running=true;
字符串[][]参数;
字符串方法名;
SoapObject resultado;
公共ansyWS(字符串_方法名,字符串[][].\u参数)
{
methodname=\u methodname;
parametros=_parametros;
}
@凌驾
受保护的void onPreExecute(){
dialog=newprogressdialog(getActivity());
setMessage(getResources().getString(R.string.dialog\u message\u save));
dialog.setUndeterminate(false);
对话框。可设置可取消(false);
dialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
webservice=newws();
resultado=webservice.LlamaWS(methodname,parametros);
dialog.dismise();
if(resultado!=null){
对于(int i=0;i

}

尝试在重写的onCancelled()方法中取消对话框。如果使用
.cancel(true)
,AsynkTask将调用
onCancelled()
,而不是
onPostExcecute(String)
(参考:AsyncTask文档)不工作,应用程序将关闭并锁定