我有一个有点图形化复杂的安卓主屏幕(通过AppWidgetProvider)小部件,我根本无法对触摸事件做出反应。一般的想法是,点击小部件应该使它改变模式,在接下来的4-5秒,以显示不同的信息,但在我的生活中,它没有任何迹象显示,从来没有收到触摸事件。
我所采取的步骤如下:
..。它就在小部件的<receiver />容器中,就在Android帮助添加的预期APPWIDGET_UPDATE条目旁边。
...but在onReceive处理程序的顶部有一个Log.d条目,我可以告诉您,除了每10秒从系统服务发出的心跳之外,我根本没有收到任何类型的信号。
在这一点上,我能忽略或看不到什么呢?我不知道还有什么是我应该做的或者改变的.它只是神秘地忽略了用户。亚行从未向我展示任何日志条目(尽管它确实显示了许多其他愚蠢的日志消息,因此我知道这是可行的),这表明小部件曾经看到我点击它。
发布于 2015-01-25 22:17:29
问题是在第5步,您正在创建意图。不要将特定的类设置为意图,而是只使用一个操作创建它,如下所示:
Intent intent = new Intent();
intent.setAction(TOUCHED); // this should work now或者速记
Intent intent = new Intent(TOUCHED);如果它仍然不能工作,请考虑在构建requestCode时放置一个PendingIntent以外的0。根据您正在构建的Android版本,仅使用0就会有一些bug。
return PendingIntent.getBroadcast(context, 1000, intent, PendingIntent.FLAG_UPDATE_CURRENT);最后,如果这个广播只在应用程序中使用(这是非常可能的),请考虑使用一个LocalBroadcastManager。
https://stackoverflow.com/questions/28141361
复制相似问题