我有一个小工具和4个按钮。这些按钮实际上是其他应用程序的快捷方式。我用下面的代码为每个按钮设置了一个onClick挂起意图:
Intent i = context.getPackageManager().getLaunchIntentForPackage(s);
PendingIntent pi = PendingIntent.getActivity(context, 0, i, Intent.FLAG_ACTIVITY_NEW_TASK);
remoteViews.setOnClickPendingIntent(curIconId, pi);通常它工作得很好,但有时它什么也做不了,在logcat中我看到一个SendIntentException,消息是"Cannot send pending intent“。
如果我更新小部件(即再次设置挂起的意图),它将再次正常工作。
你知道为什么它有时会出故障吗?
谢谢
发布于 2012-01-19 23:10:26
问题是我向远程视图发送了太多的数据(在我的例子中,发送了太多的图标)。所以更新实际上失败了。你可以发送的内容是有大小限制的,我不记得我在哪里读到的。
在我的例子中,解决方案是使用资源URL而不是实际的图像来更新图像。
发布于 2011-07-20 02:16:22
似乎无论何时向小部件发送RemoteViews,都需要完全指定小部件。如果您只指定了小部件的一部分,如果某些原因导致您的小部件被更新(例如屏幕旋转),那么您的小部件将仅使用最新的RemoteViews重新创建。
这是向我指出这一点的链接,http://www.androiddiscuss.com/1-android-discuss/95040.html
发布于 2011-08-10 07:19:47
恐怕我不能回答你--我在一个同事(摩托罗拉)的手机上收到了同样的信号,但其他手机却没有。
I指出,您的PendingIntent.getActivity() flags参数是错误的:Intent.FLAG_ACTIVITY_NEW_TASK需要运行在Intent i上。getActivity()调用需要FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT、FLAG_UPDATE_CURRENT或Intent.FILL_IN_标志之一。
我还可以提到,在我使用PendingIntent.FLAG_CANCEL_CURRENT之前,我的点击有时会失败。这可能是添加“唯一数据”有帮助的原因。
https://stackoverflow.com/questions/6745302
复制相似问题