android - 终结器未捕获到的异常

当我点击地图上的显示地点,得到这个错误。


08-28 16:38:20.554: E/System(4978): Uncaught exception thrown by finalizer


08-28 16:38:20.554: E/System(4978): java.lang.IllegalStateException: Binder has been finalized!


08-28 16:38:20.554: E/System(4978): at android.os.BinderProxy.transact(Native Method)


08-28 16:38:20.554: E/System(4978): at android.database.BulkCursorProxy.close(BulkCursorNative.java:288)


08-28 16:38:20.554: E/System(4978): at android.database.BulkCursorToCursorAdaptor.close(BulkCursorToCursorAdaptor.java:133)


08-28 16:38:20.554: E/System(4978): at android.database.CursorWrapper.close(CursorWrapper.java:49)


08-28 16:38:20.554: E/System(4978): at android.content.ContentResolver$CursorWrapperInner.close(ContentResolver.java:1591)


08-28 16:38:20.554: E/System(4978): at android.content.ContentResolver$CursorWrapperInner.finalize(ContentResolver.java:1604)


08-28 16:38:20.554: E/System(4978): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:182)


08-28 16:38:20.554: E/System(4978): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)


08-28 16:38:20.554: E/System(4978): at java.lang.Thread.run(Thread.java:856)



onclick事件


btnShowOnMap = (Button) findViewById(R.id.btn_show_map);



 // calling background Async task to load Google Places


 // After getting places from Google all the data is shown in listview


 new LoadPlaces().execute();



 /** Button click event for shown on map */


 btnShowOnMap.setOnClickListener(new View.OnClickListener() {



 @Override


 public void onClick(View arg0) {


 Intent i = new Intent(getApplicationContext(), PlacesMapActivity.class);


 // Sending user current geo location


 Log.i("getLatitude",""+ gps.getLatitude());


 i.putExtra("user_latitude", Double.toString(gps.getLatitude()));


 i.putExtra("user_longitude", Double.toString(gps.getLongitude()));



 // passing near places to map activity


 i.putExtra("near_places", nearPlaces);


 // staring activity


 startActivity(i);


 }


 });



时间:

这是在两个位置之间获取Google方向的代码,


double srcLatitude = 0;


double srcLongitude = 0;


Location location = GeoLocationUtil.getGeoLocation(this);


if (GeoLocationUtil.isValidLocation(location)) {


 srcLatitude = location.getLatitude();


 srcLongitude = location.getLongitude();


}



final Intent intent = new Intent(Intent.ACTION_VIEW,


/** Using the web based turn by turn directions url. */


Uri.parse("http://maps.google.com/maps?" +"saddr=" + srcLatitude +","


 + srcLongitude +"&daddr=" + destLat +"," + destLong));



intent.setClassName("com.google.android.apps.maps",


"com.google.android.maps.MapsActivity");


startActivity(intent);



...