异步任务与Java等效

异步任务与Java等效,java,android,sql,Java,Android,Sql,一年前,我在android上做了一些事情,我想知道是否有可能将它转换成java 来自android的代码: private void search() { class GetUsers extends AsyncTask<Void, Void, String> { ProgressDialog loading; @Override protected String doInBackground(Void... v) {

一年前,我在android上做了一些事情,我想知道是否有可能将它转换成java

来自android的代码:

private void search() {
    class GetUsers extends AsyncTask<Void, Void, String> {
        ProgressDialog loading;

        @Override
        protected String doInBackground(Void... v) {
            HashMap<String, String> params = new HashMap<>();
            params.put(Config.Key_Search, Search);
            RequestHandler rh = new RequestHandler();
            String res = rh.SendPostRequest(Config.URL_Search, params);
            Log.d("AAAA", "doInBackground: " + res);
            return res;
        }

        /**
         * After the response is given from the database
         * @param s json String
         */
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();
            showResult(s);
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(SearchActivity.this, "Searching", "Wait a sec", false, false);
        }
    }
    GetUsers getUsers = new GetUsers();
    getUsers.execute();
}
private void search(){
类GetUsers扩展异步任务{
对话加载;
@凌驾
受保护字符串背景(无效…v){
HashMap params=新的HashMap();
参数put(Config.Key_Search,Search);
RequestHandler rh=新的RequestHandler();
String res=rh.SendPostRequest(Config.URL\u Search,params);
日志d(“AAAA”,“doInBackground:+res”);
返回res;
}
/**
*在数据库给出响应之后
*@param s json字符串
*/
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
loading.dispose();
展示结果;;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
loading=ProgressDialog.show(SearchActivity.this,“搜索”,“等待一秒”,false,false);
}
}
GetUsers GetUsers=新的GetUsers();
getUsers.execute();
}
在给定参数搜索的情况下,搜索SQL数据库是非常困难的

任何答案都将不胜感激。

导入java.util.concurrent.*;
import java.util.concurrent.*;

ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<String> task = new Callable<>() {
    public String call() {
        System.out.println("Before sleep");
        TimeUnit.SECONDS.sleep(10);
        System.out.println("After sleep");
        return "foo";
    }
}
Future<String> future = executor.submit(task);
TimeUnit.SECONDS.sleep(5);
System.out.println("Do some stuff in parallel");
String result = future.get();
ExecutorService executor=Executors.newSingleThreadExecutor(); 可调用任务=新的可调用任务(){ 公共字符串调用(){ System.out.println(“睡眠前”); 时间单位。秒。睡眠(10); System.out.println(“睡眠后”); 返回“foo”; } } 未来=执行者提交(任务); 时间单位。秒。睡眠(5); System.out.println(“并行地做一些事情”); 字符串结果=future.get();
@lanc java我有一个类似的用例,尝试将AsyncTasks转换为ExecutorService,以从文件室数据库返回列表。另一个答案建议在ExecutorService上使用submit(),在Dao方法上使用get()(请参阅)。感谢您对该方法的想法,而不是您使用可调用和未来的方法。