package ui; import java.util.concurrent.Callable; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import biz.CmdExecutor; import biz.MyCmd; import biz.iCmdListener; import com.example.test4cmdpattern.R; public class MainActivity extends Activity { private String TAG = "test"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e(TAG, "thread id=" + Thread.currentThread().getId()); findViewById(R.id.btn_toexeccmd).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub CmdExecutor.exeInBackground(new MyCmd(), new iCmdListener() { @Override public void onSucess() { // TODO Auto-generated method stub Log.e(TAG, "onSucess, thread id=" + Thread.currentThread() .getId() + ", this=" + this); } @Override public void onPreExe() { // TODO Auto-generated method stub Log.e(TAG, "onPreExecute, thread id=" + Thread.currentThread() .getId() + ", this=" + this); } @Override public void onFail() { // TODO Auto-generated method stub Log.e(TAG, "onFaile, thread id=" + Thread.currentThread() .getId() + ", this=" + this); } }); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); { FutureTask<String> futureTask = new FutureTask<String>( new Callable<String>() { @Override public String call() throws Exception { // TODO Auto-generated method stub return null; } }) { @Override protected void done() { // TODO Auto-generated method stub super.done(); try { get(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CancellationException e) { // TODO: handle exception } } }; } return true; } }