WidgetProvider按钮将使用PendingIntent
进行通信
在WidetProvider的onUpdate(Context ...)
方法内,将显示以下行:
PendingIntent buttonPendingIntent = PendingIntent.getBroadcast(context, 0, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);
小部件管理器android传递了哪些上下文?
context.getApplicationContext()
可以使用PendingIntent
吗?正如我发现小部件冻结是一定时间和不同的应用程序条件,即使onUpdate被调用。使用context.getApplicationContext()
似乎有所帮助。
答案 0 :(得分:1)
由于AppWidgetManager.ACTION_APPWIDGET_UPDATE广播,您的WidgetProvider.onUpdate()
被调用。请参阅source, line 52。
'BroadcastRerceiver.onReceive()`的Javadoc说:
...you should never perform long-running operations in it...
因此,请检查您是否在onUpdate()
内没有执行任何长时间运行的任务,因为这可能是您遇到冻结的原因。