Agregar una vista encima de todas las Actividades

Estoy desarrollando una aplicación para Android. Quiero ser capaz de agregar una vista por código, que se dibuja en la parte superior de todas las actividades de la aplicación.

He intentado añadirlo al gestor de ventanas:

LayoutInflater inflater = activity.getLayoutInflater(); layout = inflater.inflate(R.layout.toast_layout, null); WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.gravity = Gravity.BOTTOM; params.height = WindowManager.LayoutParams.WRAP_CONTENT; params.width = WindowManager.LayoutParams.WRAP_CONTENT; params.type = WindowManager.LayoutParams.TYPE_TOAST; final WindowManager mWindowManager = (WindowManager); activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE); mWindowManager.addView(layout, params); 

Sin embargo, agregándolo así afronto dos problemas:

1.El diseño sigue apareciendo cuando salgo de mi aplicación.

2.El diseño no responde a los eventos Click.

¿Hay otra solución para lograr esto?

Gracias.

Cambiar el tipo LayoutParams de TYPE_TOAST a TYPE_APPLICATION y borrar las banderas anteriores que he sugerido,

Y crear una BaseActivity para todas las actividades de su aplicación, en esa actividad en onResume() agregar esta vista a WindowManager y en onPause() , quitar esa vista como,

  windowManager.removeView(view); 

1) Crear BaseActivity que extiende Actividad.

2) Ahora toda su actividad debería extender BaseActivity en lugar de Actividad

3) Modificar el método setContentView ().

4) crear linearLayout vertical en blanco en este método.

5) Agregue su topView en este diseño

6) Y entonces agrega la opinión inflada en este linearlayout

7) Y finalmente llamar a super.setContentView (passLinearLayoutHere)

¿Cómo implementar esto?

 import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.LinearLayout; public class BaseActivity extends Activity { @Override public void setContentView(int resId) { LinearLayout screenRootView = new LinearLayout(this); screenRootView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); screenRootView.setOrientation(LinearLayout.VERTICAL); // Create your top view here View topView = new View(this); // Replace this topview with your view LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View screenView = inflater.inflate(resId, null); topView.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //You will get onclick here of your topview in whatever screen it is clicked } }); screenRootView.addView(topView); screenRootView.addView(screenView); super.setContentView(screenRootView); } } 

Con el fin de gestionar el espectáculo / vista de la vista he utilizado la solución propuesta por Gopal. He adjuntado eventos onStop y onResume para que la vista se oculte al salir de la aplicación.

Para los eventos de clic, me he dado cuenta de que el tipo de tostada no responde a los eventos de clic. Por lo tanto he cambiado el tipo

 params.type = WindowManager.LayoutParams.TYPE_TOAST; 

a

 params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; 

Tengo que añadir la siguiente permision también:

 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.