我将数据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类中的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();
}
}