如何在服务类的oncreate方法中创建弹出窗口

时间:2014-09-10 07:35:39

标签: android android-service adt android-popupwindow

单击浮动图像时,我尝试在主屏幕上创建弹出窗口(使用windowmanager)。

所以在使用layoutinflater时,由于无法识别viewgroup,我无法在第二个参数中设置findviewbyId。所以我保持null。如下。

LayoutInflater inflater = (LayoutInflater) Floater.this
                             .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                     View layout = inflater.inflate(R.layout.popup_for_floating_img,
                             null);

                     pwindo = new PopupWindow(layout, 300, 370, true);
                     pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);

但是当我点击主屏幕上的浮动图像时,它会给出以下错误信息。

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

所以请建议我点击弹出窗口的方法。

我正在尝试弹出窗口,如果我们在 CLEAN MASTER 应用中启用浮动小部件并点击浮动扫帚图像将弹出窗口。

1 个答案:

答案 0 :(得分:1)

在showPopup(...)函数中尝试:

layout.post(new Runnable()
{
    public void run()
    {
        popup.showAtLocation(layout, Gravity.NO_GRAVITY, OFFSET_X, OFFSET_Y);
    }
});

布局是弹出窗口。这是因为您在创建活动之前尝试显示弹出窗口。