Android 如何在小部件上显示对话框?

Android 如何在小部件上显示对话框?,android,dialog,widget,Android,Dialog,Widget,我想显示一个对话框,比如在活动上使用showDialog(…),但我需要在小部件上显示,所以我不能使用showDialog(…)。我该怎么做 我在onReceive方法上尝试了此操作,但它崩溃了: AlertDialog.Builder builder; builder = new AlertDialog.Builder(context); builder.setMessage("Are you sure?") .setCa

我想显示一个对话框,比如在活动上使用showDialog(…),但我需要在小部件上显示,所以我不能使用showDialog(…)。我该怎么做

我在onReceive方法上尝试了此操作,但它崩溃了:

AlertDialog.Builder builder;
            builder = new AlertDialog.Builder(context);
            builder.setMessage("Are you sure?")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    db.open();
                    db.remove_last();
                    db.close();
                    dialog.dismiss();
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });
            builder.show();

谢谢,Valerio

小部件不支持这种交互,因为它们在启动器的UID下运行,而不是在应用程序的UID下运行,所以它们无法访问数据库。(这可能是导致您崩溃的原因;请查看日志以确定原因。)

在应用程序中启动一个活动,以实现您的目标。如果希望它看起来像一个对话框,请应用
主题。dialog
样式:

<activity
  android:name=".MyThing"
  android:label="@string/mythinglabel"
  android:theme="@android:style/Theme.Dialog"
/>


对话框必须来自某个活动,而不是小部件。

数据库不是问题所在,没有问题,没有db代码也会崩溃。我想创建一个对话框进行确认!发布崩溃日志会很有帮助,这使得编写可重用代码成为一件痛苦的事情。除此之外,纺纱工是如何做到的?