Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在小部件中使用应用程序上下文来实现挂起的意图_Android_Widget_Android Intent - Fatal编程技术网

Android在小部件中使用应用程序上下文来实现挂起的意图

Android在小部件中使用应用程序上下文来实现挂起的意图,android,widget,android-intent,Android,Widget,Android Intent,WidgetProvider按钮将使用PendingEvent进行通信。 在WidetProvider的onUpdate(Context…方法中,出现以下行: PendingIntent buttonPendingIntent = PendingIntent.getBroadcast(context, 0, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT); widget manager android正在传入哪个上下文 使用context.ge

WidgetProvider按钮将使用
PendingEvent
进行通信。
在WidetProvider的
onUpdate(Context…
方法中,出现以下行:

PendingIntent buttonPendingIntent = PendingIntent.getBroadcast(context, 0, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);
widget manager android正在传入哪个上下文


使用
context.getApplicationContext()
作为
PendingContent
是否可以?正如我所发现的,小部件冻结是一段特定的时间和不同的应用程序条件,即使调用了onUpdate。使用
context.getApplicationContext()
似乎有帮助。

您的
WidgetProvider.onUpdate()
是AppWidgetManager.ACTION\u APPWIDGET\u UPDATE广播的结果。看

Javadoc说:


因此,请检查您是否在
onUpdate()
中没有执行任何长时间运行的任务,因为这可能是您遇到冻结的原因。

我所做的只是使用应用程序上下文注册一些空广播接收器,以便检查某些广播的值。这只是上下文。registerReceiver(null,IntentFilter)筛选器正在广播中。我认为这是一个快速的行动?问题似乎是在调用onUpdate时,按钮上添加了无效的意图。我验证了正在调用更新,但什么也没发生。最后,我切换到context.applicationContext()来创建挂起的意图。不确定传入了哪个上下文以及这可能有帮助的原因,但它似乎解决了这个问题。顺便说一句,您知道如何检查添加到按钮的未决意图吗。如果它再次锁定,我希望有一种方法来看看点击是否成功。可怜的人的调试器是我在这种情况下通常使用的:当点击发生时,记录一行到logcat。
...you should never perform long-running operations in it...