2016-11-17 18 views
-3

1年前にアンドロイドで何かして、それをjavaに変換することが可能かどうか疑問に思っていました。アンドロイドから非同期タスク - 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();