【问题标题】:cant "addAction" to IntentFilter in android无法在 android 中向 Intent 过滤器“添加操作”
【发布时间】:2011-05-23 14:53:25
【问题描述】:

嗨。我是一名 Android 初学者,试图制作一个可以过滤多个操作的 IntentFilter。不幸的是,当我开始使用addAction 方法时,Eclipse 会抛出一个错误:

"标记 "addAction" 的语法错误, 此令牌后应有标识符"

即使我已经导入了所需的文件。这可能是一个设置问题,尽管我不确定为什么其余代码没有显示任何问题。

这是我的代码存根:

import android.content.Intent;
import android.content.Context;
import android.content.IntentFilter;

...

private Context mContext;
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.SCREEN_OFF");

当我输入“过滤器”时,我又观察到了一件事。什么都没有显示,只有消息“无默认提案”

有人可以帮我吗?

【问题讨论】:

  • 你可能需要展示更多的周边代码,而不仅仅是一小段摘录。可能是您的 filter 变量超出范围或其他原因...
  • 超出范围??不清楚,不知道,不懂 ??在 mContext.registerReceiver(status_Handler,TMS); 之后,我没有在任何方法中声明 IntentFilter在这里尝试 registerReceiver 时,我也收到错误消息“此行有多个标记 - 令牌“)上的语法错误”,删除此令牌 - 令牌“(”,删除此令牌“的语法错误”“status_Handler”是我的广播接收器方法...有没有人遇到过..我得到的错误声明
  • 如果您发布代码,我可以尝试帮助您。

标签: android intentfilter


【解决方案1】:

您试图在方法范围之外运行代码,这在 Java 中是非法的(除非它是赋值)。如果您将代码更改为

private Context mContext;
IntentFilter filter = new IntentFilter();
{
    filter.addAction("android.intent.action.SCREEN_OFF");
}

它将作为对象构造函数的一部分运行。

【讨论】:

  • 我认为这最好地回答了这个问题。标记的答案是在处理一个不同的概念。
【解决方案2】:

在问题中阅读您上面的评论(“此行有多个标记 - 令牌上的语法错误”),删除此令牌等),我仍然认为它是一个括号(或括号)不匹配的问题,它不会让 Eclipse 理解代码。它可能是在另一种方法中。仔细检查您的所有文件。您可以尝试删除大部分代码(只需将其复制到记事本),直到缩小问题范围。


来自dev guide(强调我的):

意图过滤器是 IntentFilter 类的一个实例。但是,由于 Android 系统在启动该组件之前必须知道该组件的功能,所以 intent 过滤器通常不在 Java 代码中设置,而是在应用程序的清单文件中(AndroidManifest.xml)作为元素。 (一个例外是通过调用 Context.registerReceiver() 动态注册的广播接收器的过滤器;它们直接创建为 IntentFilter 对象。)

我会将其添加到您的清单中:

<intent-filter android:label="@string/screen_off">
  <action android:name="android.intent.action.SCREEN_OFF" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

【讨论】:

  • 嗯,是的,我只是想创建一个意图过滤器,只是为了注册一个广播侦听器。
  • 没有任何意义的是“语法错误”消息。确保您在某处没有任何丢失(或多余)的括号。
  • 没有括号问题事实上我已经遵循了这里给出的测试存根和android开发者网站......这才是真正让我无法理解的愚蠢错误......知道为什么我看不到我制作的“过滤器”意图过滤器的任何“无默认建议”..我有预感这是问题所在..
猜你喜欢
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多