从Service类中只弹出一次AlertBuild.Dialog

时间:2015-05-28 10:43:35

标签: android

我将数据route,long, lat, mac发送到服务器10秒钟。 route通常是0。在这种情况下,将要求服务器提供路由。只要应用程序具有来自服务器的路径,就会出现Checkbox AlertDialog以确认用户的结果。然后route将被其他数据Long, lat, mac作为JSOn字符串启用,并再次传输到服务器。

我遇到问题,当用户不立即与Dialog交互时,警报Dialogs会堆积起来。我想要实现的是,当服务器为应用程序提供route时,只需弹出一次Dialog窗口,而不是10秒钟来自服务器的响应,因为当用户反应太晚时他必须确认所有这些Dialog Windows也在1分钟后必须确认6 Dialog Windows。

从MainActivity启动服务后,我的案例中的Dialog窗口在lert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

的帮助下从Service类弹出

我感谢任何帮助。

我在Service类中的popup_stop方法:

private void stop_popup(final ArrayList<Integer> routeList) {


        int routeListSize = routeList.size();

        if (routeListSize > 0) {

            String[] charSequence = new String[routeList.size()];
            for (int i = 0; i < routeList.size(); i++) {
                charSequence[i] = String.valueOf(routeList.get(i));
            }
            AlertDialog.Builder builder = new AlertDialog.Builder(this);


            builder.setTitle("Has this route arrived the stop? ");

            builder.setMultiChoiceItems(charSequence, null,
                    new DialogInterface.OnMultiChoiceClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which, boolean isChecked) {

        route_number = routeList.get(which);

                                                                }    
                        }
                    });

            builder.setPositiveButton(android.R.string.ok,
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {

                        }
                    });
            builder.setNegativeButton(android.R.string.cancel,
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {

                        }
                    });

            AlertDialog alert = builder.create();
            alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
            alert.show();
        }
    }

0 个答案:

没有答案