Android 从AppWidget打开弹出窗口

Android 从AppWidget打开弹出窗口,android,Android,由于似乎不可能在AppWidget中放置EditText,我想在单击它时打开一个带有EditText的弹出窗口 我知道如何从AppWidget打开活动,也知道如何从活动打开弹出窗口。然而,我不知道如何从AppWidget打开弹出窗口。我已经研究了javadoc中的许多类(Intent、remoteview、pendingent等),但是我找不到如何启动这个PopUpWindow。任何帮助都将不胜感激。您知道AppWidgetProvider是一个BroadcastReceiver。说: Broa

由于似乎不可能在AppWidget中放置EditText,我想在单击它时打开一个带有EditText的弹出窗口


我知道如何从AppWidget打开活动,也知道如何从活动打开弹出窗口。然而,我不知道如何从AppWidget打开弹出窗口。我已经研究了javadoc中的许多类(Intent、remoteview、pendingent等),但是我找不到如何启动这个PopUpWindow。任何帮助都将不胜感激。

您知道
AppWidgetProvider
是一个
BroadcastReceiver
。说:

BroadcastReceiver对象仅在调用期间有效 接收(上下文、意图)。一旦你的代码从这里返回 功能,系统认为对象已完成,不再 活跃的

这对你在工作中能做什么有着重要的影响 onReceive(上下文、意图)实现:任何需要 异步操作不可用,因为您需要 从函数返回以处理异步操作,但在 此时广播接收器不再处于活动状态,因此 系统可以在异步操作之前终止其进程 完成

尤其是,您可能无法显示对话框或绑定到来自的服务 在广播接收机中。对于前者,您应该使用 通知管理器API。对于后者,您可以使用
Context.startService()
服务发送命令

你似乎有三种方法:

  • 使用服务显示弹出窗口(请参阅)
  • 使用通知管理器(请参阅)
  • 创建带有对话框主题的活动(使其看起来像弹出窗口),并在用户单击AppWidget时显示它

  • 您可以让appWidget打开一个活动,然后显示一个对话框片段,或者使用对话框样式使该活动看起来像一个对话框