首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android主屏幕小部件神秘地无法接收触摸事件

Android主屏幕小部件神秘地无法接收触摸事件
EN

Stack Overflow用户
提问于 2015-01-25 20:52:20
回答 1查看 549关注 0票数 2

我有一个有点图形化复杂的安卓主屏幕(通过AppWidgetProvider)小部件,我根本无法对触摸事件做出反应。一般的想法是,点击小部件应该使它改变模式,在接下来的4-5秒,以显示不同的信息,但在我的生活中,它没有任何迹象显示,从来没有收到触摸事件。

我所采取的步骤如下:

  1. 我在Manifest.xml中实现了一个意图过滤器,像这样. ;

..。它就在小部件的<receiver />容器中,就在Android帮助添加的预期APPWIDGET_UPDATE条目旁边。

  1. 我已经确保正在使用的布局在每个元素上都将可点击属性设置为true (只是为了彻底),包括顶层RelativeLayout本身。
  2. 我定义了ExtraFancyWidget.class顶部的静态字符串,如下所示. 公共静态最终字符串触摸= "foo.kung.fancywidget.TOUCHED";
  3. 根据我所读到的...and,当这样做的时候,它应该是通过onRecieve处理程序进行的广播. if (TOUCHED.equals(intent.getAction(){ Log.i("onReceive","Touch event received");}

...but在onReceive处理程序的顶部有一个Log.d条目,我可以告诉您,除了每10秒从系统服务发出的心跳之外,我根本没有收到任何类型的信号。

  1. 最后,正如我所读到的那样,我正在分配意图 私有PendingIntent createOnClickIntent(上下文){意向=新意图(上下文,ExtraFancyWidget.class);intent.setAction(触摸);//为什么这不起作用?!??返回PendingIntent.getBroadcast(上下文0,意图,PendingIntent.FLAG_UPDATE_CURRENT);}
  2. ...and --这是在onUpdate中更新视图之前发生的最后一件事 views.setOnClickPendingIntent(R.id.TheWholeWidget,createOnClickIntent(上下文);appWidgetManager.updateAppWidget(appWidgetId,视图);

在这一点上,我能忽略或看不到什么呢?我不知道还有什么是我应该做的或者改变的.它只是神秘地忽略了用户。亚行从未向我展示任何日志条目(尽管它确实显示了许多其他愚蠢的日志消息,因此我知道这是可行的),这表明小部件曾经看到我点击它。

EN

回答 1

Stack Overflow用户

发布于 2015-01-25 22:17:29

问题是在第5步,您正在创建意图。不要将特定的类设置为意图,而是只使用一个操作创建它,如下所示:

代码语言:javascript
复制
Intent intent = new Intent();
intent.setAction(TOUCHED); // this should work now

或者速记

代码语言:javascript
复制
Intent intent = new Intent(TOUCHED);

如果它仍然不能工作,请考虑在构建requestCode时放置一个PendingIntent以外的0。根据您正在构建的Android版本,仅使用0就会有一些bug。

代码语言:javascript
复制
return PendingIntent.getBroadcast(context, 1000, intent, PendingIntent.FLAG_UPDATE_CURRENT);

最后,如果这个广播只在应用程序中使用(这是非常可能的),请考虑使用一个LocalBroadcastManager

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28141361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档