Android 重新回顾经典异步类 AsyncTask

今天翻旧代码的时候,发现了这个东西,虽然年代久远,但也算一种耗时操作的解决方案。

使用 和 注意事项 请看 注释

如果还有不明白的地方欢迎评论区留言

//初始化InnerTask 务必在主线程
new InnerTask().execute(queryParam);
private class InnerTask extends AsyncTask<QueryParam, Void, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //显示加载框或者进度框     当前在: UI线程
        }

        @Override
        protected String doInBackground(QueryParam... params) {
            //执行耗时操作        当前在: IO线程
            String result = "耗时操作后需要操作的数据"
            return result;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            //隐藏加载框或者进度框     当前在: UI线程
            Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
        }
    }

AsyncTask 内部方法的运转顺序:

onPreExecute() → doInBackground(参数:类型取决于泛型) → onPostExecute(参数:类型取决于泛型);

猜你喜欢

转载自blog.csdn.net/qq_39731011/article/details/121724471