异步任务与Java等效
一年前,我在android上做了一些事情,我想知道是否有可能将它转换成java 来自android的代码:异步任务与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) {
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()(请参阅)。感谢您对该方法的想法,而不是您使用可调用和未来的方法。