Java AsyncTask状态未声明为已完成

Java AsyncTask状态未声明为已完成,java,android,mobile,Java,Android,Mobile,问题是: AsyncTask状态未声明为“已完成”,但在doInBackground中执行代码后仍保持运行。启动此任务后,应用程序运行缓慢,时间非常长 我需要完成。我做错了什么 谢谢 代码缩写: MyTask mt; class MyTask extends AsyncTask<Void, Void, Void> { int myProgressCount; @Override protected void o

问题是: AsyncTask状态未声明为“已完成”,但在doInBackground中执行代码后仍保持运行。启动此任务后,应用程序运行缓慢,时间非常长

我需要完成。我做错了什么

谢谢

代码缩写:

    MyTask mt;

    class MyTask extends AsyncTask<Void, Void, Void> {

        int myProgressCount;



        @Override
        protected void onPreExecute() {
               super.onPreExecute();

               Toast.makeText(DeviceUARTContext, "onPreExecute Start Progress Bar", Toast.LENGTH_LONG).show();

        }       

        @Override
        protected Void doInBackground(Void... params) {

                // the code of a task

            return null;
        }



        @Override
        protected void onPostExecute(Void result) {
                super.onPostExecute(result);

                Toast.makeText(DeviceUARTContext, "onPostExecute End Progress Bar",
                            Toast.LENGTH_LONG).show();



               Toast.makeText(DeviceUARTContext, "asynctask status: "+mt.getStatus(), Toast.LENGTH_LONG).show();
                // here mt.getStatus() should be "Finished"


        }
 }





ReadDataBut = (Button) view.findViewById(R.id.button12);
    ReadDataBut.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            mt = new MyTask();
            mt.execute();

        }
    });
如果您的toast asynctask status:正在显示,则意味着您已经处于onPostExecute状态,即您的doInBackground方法已完成,并且将在显示此toast后,即onPostExecute方法完成执行时完成

请参阅此链接:


在onPostExecuted完成后,它会清楚地表明它的执行状态已更改,并且在它完成之前,您正在以相同的方法显示toast,因此RUNNING返回为onPostExecuted尚未完成。

但是mt.getStatus正在运行-这意味着任务尚未执行。不!任务保持运行您正在询问为什么代码保持运行,但您没有显示代码。。。
   protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            Toast.makeText(DeviceUARTContext, "onPostExecute End Progress Bar",
                        Toast.LENGTH_LONG).show();



           Toast.makeText(DeviceUARTContext, "asynctask status: "+mt.getStatus(), Toast.LENGTH_LONG).show();
            // здесь mt.getStatus() должно быть "Finished"


    }