Use adb and logcat to find out the cause of the problem and then fix it.

Thanks,
Justin Anderson
MagouyaWare Developer
http://sites.google.com/site/magouyaware


On Mon, Apr 9, 2012 at 2:59 AM, Tom <[email protected]> wrote:

> Hello,
>
> I've implemented an example of showDialog in my SourceCode. This works
> normally really good. But my  problem is, if you press the Back-Button
> during the Progressbar dialog is showing.
> The App crashes. If I write a Log in the Handler method ( "final
> Handler handler = new Handler() ") I see the the App is finished but
> the handler method still in a loop.
> Does someone has a tip or a example what I can do?
>
> Cheers
>
> Tom
>
> import android.app.AlertDialog;
> import android.app.Dialog;
> import android.app.ProgressDialog;
> import android.content.Intent;
> import android.content.SharedPreferences;
> import android.database.Cursor;
> import android.graphics.Bitmap;
> import android.graphics.BitmapFactory;
> import android.graphics.Canvas;
> import android.graphics.Paint;
> import android.graphics.Paint.Style;
> import android.graphics.Point;
> import android.graphics.RectF;
> import android.location.Location;
> import android.location.LocationListener;
> import android.net.Uri;
> import android.os.Bundle;
> import android.os.Handler;
> import android.os.Message;
> import android.preference.PreferenceManager;
> import android.util.Log;
> import android.view.KeyEvent;
> import android.view.Menu;
> import android.view.MenuItem;
> import android.view.Window;
> import android.widget.Toast;
>
> import com.google.android.maps.GeoPoint;
> import com.google.android.maps.MapActivity;
> import com.google.android.maps.MapController;
> import com.google.android.maps.MapView;
> import com.google.android.maps.MyLocationOverlay;
> import com.google.android.maps.Overlay;
>
> import de.tektom.geoformel.common.ProgressbarThread;
>
>
>
> /**
>  * Zeigt Google Maps in einer MapActivity an.
>  * <p>
>  * Im Emulator zum Beispiel die Koordinaten mit <br>
>  * geo fix 7.1 51 300 <br>
>  * setzen um etwas zu sehen.
>  *
>  * @author David Müller, Arno Becker, 2010 visionera gmbh
>  */
> public class KarteAnzeigenActivity extends MapActivity implements
> LocationListener {
>        private MapController map_Controller;
>        private MapView map_View;
>        private MyLocationOverlay mMyLocationOverlay ;
>        private GeoKontaktOverlay mMapViewOverlay;
>        private ProgressbarThread progThread;
>        private ProgressDialog progDialog;
>
>        private float mlatitude;
>        private float mlongitude;
>         /** Kuerzel fuers Logging. */
>         private static final String TAG =
> KarteAnzeigenActivity.class.getSimpleName();
>
>
>         @Override
>          public void onCreate(Bundle savedInstanceState) {
>                 try
>                 {
>                 requestWindowFeature(Window.FEATURE_LEFT_ICON);
>                         super.onCreate(savedInstanceState);
>                         setContentView(R.layout.mapkarte);
>
> setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.icon);
>
>                                 showDialog(0);
>
>                                 if(getIntent().hasExtra("latitude") ==
> true)
>                                        mlatitude =
> getIntent().getExtras().getFloat("latitude");
>                                 if(getIntent().hasExtra("longitude") ==
> true)
>                                        mlongitude =
> getIntent().getExtras().getFloat("longitude");
>
>
>                                 initMapView();
>
>                                 // fuege der MapView das Overlay fuer die
>                                 // empfangene Position hinzu
>                                 initGCFormelOverlay();
>
>                                 // Zeige die eigene Position mit Hilfe
>                                 // des Overlays aus der Google Api
>                                 initMyLocationOverlay();
>                            // create an overlay that shows our current
> location
>
>                 }
>                 catch (Exception ex)
>                 {
>                         Log.i(TAG, ex.getMessage());
>                         Toast.makeText(this,"UI problem in " + TAG + "-" +
> ex.getMessage(),Toast.LENGTH_LONG).show();
>
>                 }
>          }
>
>                public void onLocationChanged(Location location) {
>                        mlatitude = (int) (location.getLatitude());
>                        mlongitude = (int) (location.getLongitude());
>                }
>
>                public void onStatusChanged(String provider, int status,
> Bundle
> extras) {
>                        // TODO Auto-generated method stub
>
>                }
>
>                public void onProviderEnabled(String provider) {
>                        Toast.makeText(this, "Enabled new provider " +
> provider,
>                                        Toast.LENGTH_SHORT).show();
>                }
>
>                public void onProviderDisabled(String provider) {
>                        Toast.makeText(this, "Disenabled provider " +
> provider,
>                                        Toast.LENGTH_SHORT).show();
>                }
>
>
>
>          @Override
>          protected boolean isLocationDisplayed() {
>            return super.isLocationDisplayed();
>          }
>
>          @Override
>          protected boolean isRouteDisplayed() {
>            return false;
>          }
>
>         @Override
>         protected void onPause() {
>                // TODO Auto-generated method stub
>                 mMyLocationOverlay.disableMyLocation();
>                 mMyLocationOverlay.disableCompass();
>                 super.onPause();
>         }
>
>
>
>         @Override
>         protected void onResume() {
>                 mMyLocationOverlay.enableMyLocation();
>                 mMyLocationOverlay.enableCompass();
>
>                 map_View.invalidate();
>
>                 super.onResume();
>        }
>
>
>
>          @Override
>          protected void onDestroy() {
>            Log.d(TAG, "onDestroy() aufgerufen...");
>
>            super.onDestroy();
>          }
>
>
>
>
>       // Method to create a progress bar dialog of either spinner or
> horizontal type
>       @Override
>       protected Dialog onCreateDialog(int id) {
>                switch(id) {
>           case 0:                      // Spinner
>               progDialog = new ProgressDialog(this);
>
> progDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
>               progDialog.setMessage("Loading...");
>               progDialog.setIndeterminate(true);
>               progDialog.setCancelable(true);
>               progThread = new ProgressbarThread(handler);
>
>               progThread.start();
>               return progDialog;
>                        default:
>               return null;
>           }
>       }
>
>       // Handler on the main (UI) thread that will receive messages
> from the
>       // second thread and update the progress.
>
>       final Handler handler = new Handler() {
>           public void handleMessage(Message msg) {
>                try
>                {
>               Log.w(TAG, "Handler still activ");
>               // Get the current value of the variable total from the
> message data
>               // and update the progress bar.
>               int total = msg.getData().getInt("total");
>               progDialog.setProgress(total);
>               if (total <= 0){
>                        dismissDialog(0);
>                   progThread.setState(ProgressbarThread.DONE);
>               }
>           }
>           catch(Exception ex)
>           {
>
>           }
>       }
>
>       };
>       public boolean onKeyDown(int keyCode, KeyEvent event)
>       {
>           if (keyCode == KeyEvent.KEYCODE_BACK &&
> progDialog.isShowing())
>           {
>               // DO SOMETHING
>                dismissDialog(0);
>            }
>
>           // Call super code so we dont limit default interaction
>           super.onKeyDown(keyCode, event);
>
>           return true;
>       }
> }
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to