package org.francho.unutopia_android.services; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.ResultReceiver; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.ProgressBar; public class MainActivity extends Activity { MyResultReceiver resultReceiver = new MyResultReceiver(); private ProgressBar progressBar; private ImageView imageView; private LoadImageAsyncTask task; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progressBar = (ProgressBar) findViewById(R.id.progressBar1); progressBar.setVisibility(View.INVISIBLE); imageView = (ImageView) findViewById(R.id.imageView1); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent service = new Intent("org.francho.unutopia_android.ACTION_SERVICE"); startService(service); } }); findViewById(R.id.button2).setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent service = new Intent("org.francho.unutopia_android.ACTION_INTENT_SERVICE"); service.putExtra("EXTRA_MYRESULTRECEIVER", resultReceiver); startService(service); } }); } @Override protected void onStart() { super.onStart(); task = new LoadImageAsyncTask(imageView); task.execute("http://www.android.com/images/marquee_jb.png"); } @Override protected void onStop() { if(task != null ) { task.cancel(true); } super.onStop(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } class MyResultReceiver extends ResultReceiver { public MyResultReceiver() { super(new Handler()); } @Override protected void onReceiveResult(int resultCode, Bundle resultData) { super.onReceiveResult(resultCode, resultData); switch (resultCode) { case 1: progressBar.setVisibility(View.VISIBLE); break; case 0: progressBar.setVisibility(View.INVISIBLE); break; default: break; } } } }