アンドロイド用アプリ開発勉強中の初心者です。
非同期処理にExecutorServiceからRunnableへ処理を投げ、 EventBusで結果を返す方法を探していますが見つかりませんでしたので質問させていただきます。
取り敢えず下記のクラスまでは書けています。
質問内容は
- onEventMainThreadの書き方(文字列を受け取る処理)
- 受け取った結果として文字列"finished"をToastで表示したい(Toast表示自体は書けます)
よろしくお願いします。
メインアクティビティ
lang
1public class MyActivity extends Activity { 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_main); 6 ExecutorService es = Executors.newCachedThreadPool(); 7 es.submit(new MyRunnable()); 8 } 9 @Override 10 protected void onResume() { 11 super.onResume(); 12 // EventBus の登録 13 EventBus.getDefault().register(this); 14 } 15 @Override 16 protected void onPause() { 17 // 登録の解除 18 EventBus.getDefault().unregister(this); 19 super.onPause(); 20 }
Runnableクラス
lang
1public class MyRunnable implements Runnable { 2 public MyRunnable(){} 3 @Override 4 public void run() { 5 try { 6 Thread.sleep(5000); 7 } catch (Exception e) { 8 e.printStackTrace(); 9 } 10 String result = "finished"; 11 EventBus.getDefault().post(new MyRunnable()); 12 } 13}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/07 05:24