2016-11-17 36 views
-3

我在android一年前做了一些事情,並想知道是否有可能將它轉換爲java。從Android的異步任務到Java等效

代碼:

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(); 
} 

其給出的參數搜索來搜索一個SQL數據庫。

任何答案將不勝感激。

回答

2
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();