用于任何android版本的通用异步任务

用于任何android版本的通用异步任务,android,android-asynctask,android-4.0-ice-cream-sandwich,android-2.3-gingerbread,Android,Android Asynctask,Android 4.0 Ice Cream Sandwich,Android 2.3 Gingerbread,我正在制作一款android应用程序,它可以兼容2.3到4版本的android系统。。。我试图实现的是创建一个泛型类,它从AsyncTask扩展而来,可以用于在后台处理不同的任务。我一直在阅读,找到了这样的作品: AsyncTask task = new YourTask(); if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) { task.execute(params); } else {

我正在制作一款android应用程序,它可以兼容2.3到4版本的android系统。。。我试图实现的是创建一个泛型类,它从AsyncTask扩展而来,可以用于在后台处理不同的任务。我一直在阅读,找到了这样的作品:

AsyncTask task = new YourTask();
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {
    task.execute(params);
} else {
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params); 
}
AsyncTask task=newyourtask();

如果(Build.VERSION.SDK_INT将逻辑添加到被重写的
execute()
方法中,那么只需调用
YourTask.execute()

公共最终异步任务执行(Params…Params){
如果(Build.VERSION.SDK_INT
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {

                    new AsyncTask<Void, Void, Void>() {

                        @Override
                        protected Void doInBackground(Void... params) {
                            // Any task
                            return null;
                        }

                        @Override
                        protected void onPostExecute(Void aVoid) {
                            super.onPostExecute(aVoid);
                        }
                    }.execute();

                } else {

                    new AsyncTask<Void, Void, Void>() {

                        @Override
                        protected Void doInBackground(Void... params) {
                            //Any task
                            return null;
                        }

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

                        }
                    }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);//This is the different thing.

                }
public final AsyncTask<Params, Progress, Result> execute(Params... params) {
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {
        super.execute(params);
    } else {
        super.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
    }
}