¿Hay alguien sabe cómo getWindow () en servicio en android?
Hice una vista sin actividad usando WindowManager.
Pero tengo que cambiar el estado de vista como abajo
- Android: Actualizar ListView en la primera actividad al regresar de la segunda actividad
- Horizontalmente desplazables tabulaciones dentro de un fragmento en una actividad
- Ámbito de la actividad y Asynctask
- Significado de RuntimeException ("Stub!") En Android
- Actualización de la actividad TextView desde el servicio mediante vinculación de servicio
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
Pero getWindow () no puede utilizar en servicio.
¿hay alguna manera?
- No hay animación para Android al pasar de una actividad de retrato a una actividad de paisaje
- Actionbar elemento de menú onclick?
- Android - ¿Cómo realizar un seguimiento de la aplicación Sólo se reanuda cuando sale y vuelve a la aplicación?
- Cómo configurar el color de fondo de una actividad a blanco mediante programación?
- Cerrar todas las aplicaciones abiertas y ejecutables a la vez botón-android
- Android 4.4.2 - java.lang.RuntimeException: Realización de la parada de la actividad que no se reanuda
- Ciclo de vida de actividad detallada de android (onAttachedToWindow ())
- No destruir un servicio enlazado Activar destruir
No se puede obtener una ventana en un servicio. Pero puede usar WindowManager para agregar una vista (raíz) como ya lo hizo.
Y también puede actualizar la vista a través de updateViewLayout , puede cambiar el estado de su ventana (tipo de ventana, bandera, x, y, w, h, gravedad, etc …) como los siguientes códigos.
private WindowManager mWindowManager; private WindowManager.LayoutParams mLayoutParams; .......... //let's assume that an event occurred if(mConfiguration.orientation==Configuration.ORIENTATION_LANDSCAPE){ mLayoutParams.screenOrientation=Configuration.ORIENTATION_PORTRAIT; } mLayoutParams.softInputMode=WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN; mLayoutParams.gravity = Gravity.TOP|Gravity.CENTER; int flag=0 |WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN |WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM ; mLayoutParams.flags=flag; mWindowManager.updateViewLayout(mRootView, mLayoutParams);
Como por servicio no tiene interfaz de usuario, tiene que iniciar la actividad de ello para obtener el atributo getWindow ().
Haga una actividad Transparent o simplemente inicie la actividad, getWindow () e inmediatamente termine. Creo que tiene que hacer una actividad transparente. (Esta es mi opinión personal)
Lo que usted está tratando de hacer, creo, es tener la señal de servicio que se debe hacer un cambio en la apariencia de una actividad. La forma de hacerlo es que el servicio Context.sendBroadcast(Intent)
una intención utilizando Context.sendBroadcast(Intent)
y que su actividad responda en su método onReceive
. La respuesta aceptada en este hilo tiene más detalles sobre cómo configurar esto.