无法添加窗口,标记android.os.BinderProxy无效;使用谷歌地图时,您的活动是否正在运行
当我退出此活动并转到另一个活动时,我遇到此错误。通过搜索此错误,我了解我们退出活动,而后台活动返回结果。我尝试使用onbackpressed方法完成活动,但没有成功。我在一些帖子中读到,如果我们使用此代码 如果Activity context.isFinishing{ //显示对话框 } 但我不知道在哪里使用它,也不知道如果我们不想显示,为什么我们会在代码中使用一些对话框无法添加窗口,标记android.os.BinderProxy无效;使用谷歌地图时,您的活动是否正在运行,android,google-maps,activity-finish,Android,Google Maps,Activity Finish,当我退出此活动并转到另一个活动时,我遇到此错误。通过搜索此错误,我了解我们退出活动,而后台活动返回结果。我尝试使用onbackpressed方法完成活动,但没有成功。我在一些帖子中读到,如果我们使用此代码 如果Activity context.isFinishing{ //显示对话框 } 但我不知道在哪里使用它,也不知道如果我们不想显示,为什么我们会在代码中使用一些对话框 public class LocationActivity extends Activity implements
public class LocationActivity extends Activity implements LocationListener {
private final String TAG = getClass().getSimpleName();
protected ConnectionDetector connectionDetector;
public Boolean isInternetPresent;
private String[] places;
public static Loc [] getloc;
private LocationManager locationManager;
private Location loc;
static HttpEntity entityResponse = null;
GoogleMap map;
MarkerOptions mp;
Activity activity;
Context context;
Double lat,lon;
final String Googlekey=" " ;
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences;
int locationCount = 0;
connectionDetector = new ConnectionDetector(getApplicationContext());
isInternetPresent = connectionDetector.isConnectingToInternet();
super.onCreate(savedInstanceState);
setContentView(R.layout.location);
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
}
@Override
public void onLocationChanged(Location location) {
map.clear();
lat=location.getLatitude();
lon=location.getLongitude();
Googleapicall exeTask = new Googleapicall();
exeTask.execute();
mp = new MarkerOptions();
mp.position(new LatLng(lat, lon));
map.addMarker(mp);
mp.title("My Location");
map.animateCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(lat, lon), 13));
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public class Googleapicall extends AsyncTask<String, Void, String>
{
Loc statStr = null;
Loc[] statInfoResult = null;
ArrayList<Loc> SIArrayList = new ArrayList<Loc>();
private ProgressDialog Dialog;
@Override
protected void onPreExecute() {
Dialog = new ProgressDialog(LocationActivity.this);
Dialog.setMessage(LocationActivity.this.getResources().getString(
R.string.loading));
Dialog.setCancelable(false);
Dialog.show();
}
@Override
protected String doInBackground(String... params) {
String result = "";
try
{
if(isInternetPresent)
{
getloc=Webcall.getdet(lat,lon,Googlekey);
result = "Success";
System.out.println("getloc "+getloc.length);
}
else
{
result = "Failure";
}
}
catch (Exception e)
{
result = "Failure";
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result) {
Loc lc=new Loc();
try {
if(result.contains("Success"))
{
mp=new MarkerOptions();
for(int i=0;i<getloc.length;i++)
{
Double lati=getloc[i].latitudes;
Double longi=getloc[i].longitudes;
map.addMarker(new MarkerOptions()
.title("Nearbyplace")
.position(
new LatLng(lati,longi))
.icon(BitmapDescriptorFactory.fromResource(R.drawable.small)));
}
}
}
catch
(Exception e)
{
e.printStackTrace();
}
Dialog.dismiss();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent i = new Intent(LocationActivity.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
LocationActivity.this.startActivity(i);
((Activity) LocationActivity.this).finish();
}
}
查看此问题的答案:。您将能够找到一个适合您特定用例的方法。顺便说一句,如果您不想,您不必使用对话方法。您可以使用toast,也可以使用其他方法。在显示对话框之前,请检查LocationActivity.this.isFinishing