No se puede eliminar una vista adjunta por windowManager.addView ()

Estoy intentando eliminar una capa agregada a WindowManager. Pero nada sucede cuando llamo a removeView (). ¿Alguien sabe cómo eliminarlo? Mi código se ve así.

public class MainActivity extends Activity implements View.OnClickListener{ private WindowManager wm; private WindowManager.LayoutParams orientationLayout; private LinearLayout orientationChanger; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // init landscape things wm = (WindowManager) getApplicationContext().getSystemService(Service.WINDOW_SERVICE); orientationChanger = new LinearLayout(getApplicationContext()); orientationChanger.setClickable(false); orientationChanger.setFocusable(false); orientationChanger.setFocusableInTouchMode(false); orientationChanger.setLongClickable(false); orientationLayout = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.RGBA_8888); orientationLayout.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; // set view setContentView(R.layout.calibrate); findViewById(android.R.id.button).setOnClickListener(this); lockLandScape(); } public void lockLandScape(){ wm.addView(orientationChanger, orientationLayout); orientationChanger.setVisibility(View.GONE); orientationLayout.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; wm.updateViewLayout(orientationChanger, orientationLayout); orientationChanger.setVisibility(View.VISIBLE); } public void releaseLandScape(){ wm.removeView(orientationChanger); // This doesn't work as well //wm.removeViewImmediate(orientationChanger); } @Overrride public void onClick(View view){ Log.i("myapp", "clicked") releaseLandScape(); } } 

En lugar de usar un atributo como wm, ¿podría intentar usar

 (WindowManager) getApplicationContext().getSystemService(Service.WINDOW_SERVICE) 

cada vez ?

me gusta :

 ((WindowManager) getApplicationContext().getSystemService(Service.WINDOW_SERVICE)).removeView(orientationChanger); 
  • ¿Qué es un "panel" en una ventana de Android?
  • Cómo obtener la ventana de un InputMethodService?
  • WindowManager.LayoutParams ¿por qué hay un método setTitle?
  • WindowManager $ BadTokenException no se puede agregar la ventana
  • ¿Cómo sortea Facebook Messenger un chathead? (Androide)
  • Detectar la contraseña de bloqueo de la pantalla de bloqueo por el usuario en Android
  • La vista web de Android ajusta todo el contenido a la pantalla
  • Android Animation para cargar viewgroup / layout en arrastrar / deslizar la vista (Button)
  • Ventana emergente como any.do
  • Logcat para varios dispositivos que se ejecutan al mismo tiempo en Android Studio?
  • Actividad de Android que no se muestra cuando se desactiva la pantalla y se bloquea la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.