Android 当应用程序在后台运行时,如何在顶部显示对话框?
我使用了AlertDialog,但它只在应用程序打开时显示对话框 如果应用程序在后台运行,则AlertDialog不会显示在顶部 例如,时钟应用程序 时间到了,它会在顶部显示对话框或提示窗口Android 当应用程序在后台运行时,如何在顶部显示对话框?,android,dialog,android-alertdialog,android-4.3-jelly-bean,Android,Dialog,Android Alertdialog,Android 4.3 Jelly Bean,我使用了AlertDialog,但它只在应用程序打开时显示对话框 如果应用程序在后台运行,则AlertDialog不会显示在顶部 例如,时钟应用程序 时间到了,它会在顶部显示对话框或提示窗口 当应用程序在后台运行时,如何在顶部显示对话框???当应用程序在后台运行时,您可以显示系统级警报。考虑下面的代码来显示这样的警报,例如 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
当应用程序在后台运行时,如何在顶部显示对话框???当应用程序在后台运行时,您可以显示系统级警报。考虑下面的代码来显示这样的警报,例如
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
| WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSPARENT);
params.height = WindowManager.LayoutParams.MATCH_PARENT;
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.format = PixelFormat.TRANSLUCENT;
params.gravity = Gravity.TOP;
LinearLayout ly = new LinearLayout(context);
ly.setBackgroundColor(Color.BLACK);
ly.setOrientation(LinearLayout.VERTICAL);
ImageView iv = new ImageView(context);
iv.setImageResource(R.drawable.ic_launcher);
ly.addView(iv);
TextView tv1 = new TextView(context);
tv1.setWidth(params.width);
tv1.setBackgroundColor(Color.BLUE);
ly.addView(tv1);
wm.addView(ly, params);
- 在清单中添加权限 使用权限android:name=“android.permission.SYSTEM\u ALERT\u WINDOW”
我知道这有点迟,但由于没有被接受的答案,你可以考虑这个问题。 您不必创建自定义视图并将其添加到窗口中。如果您的目标是只显示一个常规对话框,则可以执行以下操作 创建一个服务类,并通过将其写入AndroidManifest.xml让应用程序了解该服务。有点像
<service android:name="your.package.name.PopupService"/>
}
当你想显示对话框时,只需调用服务,比如
Intent intent = new Intent(MainActivity.this, PopupService.class);
intent.putExtra("msg","Test Message");
startService(intent);
还有一件事,只需将此权限添加到AndroidManifest.xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
希望这有帮助:)您只能在活动顶部显示对话框。没有活动,对话无法独立显示。。。如果你想显示对话框,创建活动并将主题设置为@android/theme.dialogo当应用程序在后台运行时,顶部是否可以显示其他对话框或提示窗口?我不明白你说的是什么。请记住:在安卓2.3或更低版本中,或在某些设备中,甚至向下拖动通知面板都会出现在该窗口后面!它不是仅用于系统级警报吗?好吧,除非应用程序想通知用户有关系统级信息,否则在应用程序中使用它是不好的做法。当应用程序在后台运行时,是否有其他对话框或提示窗口可以显示在顶部??
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>