如何在系统应用程序之上显示AlertDialog

时间:2012-08-08 05:04:55

标签: android alertdialog

在我的应用中,您点击启动图库的按钮,在您从图库中选择照片后,我的应用会压缩照片并生成缩略图。此操作需要几秒钟,我想显示一个对话框,告诉用户让他们知道我的应用正在做某事。问题是在生成照片时,图库仍然在屏幕上处于活动状态,并且我的对话框没有显示。目前使用以下代码我收到有关“此窗口类型的权限被拒绝”和“badtoken”的错误。我的清单中有“SYSTEM_ALERT_WINDOW”

的权限集

我的问题基本上是如何让这个对话框显示在图库视图的顶部?

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {

        // Do this if result came from selection in android photo gallery
        case PICK_EXISTING_PHOTO_RESULT_CODE: {

            if (resultCode == RESULT_OK) {
                AlertDialog alertDialog = new AlertDialog.Builder(this)
                        .setTitle("").setMessage("Optimizing Photo...")
                        .setCancelable(false).create();
                alertDialog.getWindow().setType(
                        WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
                alertDialog.show();

1 个答案:

答案 0 :(得分:0)

  • 我认为您无法从图库应用中显示对话框。您应该只为文件选择传递到图库应用程序,然后在您的应用程序中处理处理,对吗?因此,您不会在图库应用程序中通知用户正在处理图像。
  • 我想你会想要添加一个ProgressBar,而不是一个AlertDialog。当用户有一些选项时,或者当你想要确认某些内容时,通常会使用对话框,而不只是表明进程正在运行。

我觉得你的时间表应该是:

  1. 您的活动
    • 用户按下指示意图选择图像的按钮
  2. 图库应用
    • 用户选择图片
    • 图库应用返回文件/文件名
  3. 您的活动
    • 开始显示ProgressBar
    • 处理图片
    • End ProgressBar