Unable to add window -- token null is not valid; is your activity running?
android
Solution
I had the same problem as you, it looks like you used the tutorial from http://www.piwai.info/chatheads-basics like I did. The problem is that you cannot reliably pass the current activity to the popup window, because you have no control over the current activity. It looks like there might be a unreliable way to get the current activity, but I don't recommend that.
The way I fixed it for my app was to not use the popup window, but instead make my own through the window manager.
private void showCustomPopupMenu()
{
windowManager2 = (WindowManager)getSystemService(WINDOW_SERVICE);
LayoutInflater layoutInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=layoutInflater.inflate(R.layout.xxact_copy_popupmenu, null);
params=new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
);
params.gravity=Gravity.CENTER|Gravity.CENTER;
params.x=0;
params.y=0;
windowManager2.addView(view, params);
}
If you want this to look like a popup window, just add a transparent gray view as the background and add a onClickListener to it to remove the view from the windowManager object.
I know this isn't as convenient as a popup, but from my experience, it is the most reliable way.
and don't forget to add permission in your manifest file
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Problem
I want to show a custom popup menu when the user clicks on a floating icon the floating icon create with service and i have no activity this is my floating icon code ``` public class copy_actions_service extends Service { ImageView copy_ImageView; WindowManager windowManager; WindowManager.LayoutParams layoutParams; @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { windowManager=(WindowManager)getSystemService(WINDOW_SERVICE); copy_ImageView=new ImageView(this); copy_ImageView.setImageResource(R.drawable.ic_launcher); copy_ImageView.setAlpha(245); copy_ImageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { showCustomPopupMenu(); } }); layoutParams=new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); layoutParams.gravity=Gravity.TOP|Gravity.CENTER; layoutParams.x=0; layoutParams.y=100; windowManager.addView(copy_ImageView, layoutParams); } private void showCustomPopupMenu() { LayoutInflater layoutInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view=layoutInflater.inflate(R.layout.xxact_copy_popupmenu, null); PopupWindow popupWindow=new PopupWindow(); popupWindow.setContentView(view); popupWindow.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); popupWindow.setFocusable(true); popupWindow.showAtLocation(view, Gravity.NO_GRAVITY, 0, 0); } } ``` everything fine but when i click on the float button app stop and this error is shown on logcat :( ``` 11-23 02:18:58.217: E/AndroidRuntime(3231): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? ``` but I have no activity? I want to popup menu show after user click on float icon; but popup menu only can show text; how can I show a popup menu with icons?