Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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
“不能”;addAction“;在android中使用IntentFilter_Android_Intentfilter - Fatal编程技术网

“不能”;addAction“;在android中使用IntentFilter

“不能”;addAction“;在android中使用IntentFilter,android,intentfilter,Android,Intentfilter,嗨。我是一个Android初学者,试图制作一个可以过滤多个动作的IntentFilter。不幸的是,当我开始使用addAction方法时,Eclipse抛出了一个错误: 标记“addAction”上的语法错误, 此令牌后应为标识符“ 即使我已经导入了所需的文件。这可能是一个设置问题,尽管我不确定为什么代码的其余部分没有显示任何问题 这是我的代码存根: import android.content.Intent; import android.content.Context; import and

嗨。我是一个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”时,没有显示任何内容,只有消息“No Default Propositions”


有人能帮我吗

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


从(我的)重点:

意图过滤器是IntentFilter类的一个实例。但是,由于Android系统在启动组件之前必须了解组件的功能,意图过滤器通常不是在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>

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

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

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

您可能需要显示更多的排序舍入代码,而不仅仅是一个小片段。可能是您的
筛选器
变量超出范围或其他内容……超出范围??不理解??我没有在任何方法中声明IntentFilter,接下来是mregisterReceiver(status_Handler,TMS);在尝试registerReceiver时,我也会收到错误消息:“此行有多个标记-令牌上的语法错误”),“删除此令牌-令牌上的语法错误”(“,删除此令牌”status_Handler“是我的广播接收方法…有没有人遇到过..我遇到的错误状态如果你发布代码,我可以尝试帮助你。是的,我只是想创建一个意图过滤器来注册广播列表器。没有任何意义的是“语法错误”“消息。确保你没有任何缺少(或额外)括号的地方。没有括号问题事实上,我遵循了这里给出的一个测试存根和android开发者网站…这是真正的窃听如此愚蠢的错误,我无法理解…你知道我为什么看不到任何关于“过滤器”我做的意图过滤器。我有预感这就是问题所在。我认为这最好地回答了这个问题。有标记的答案是解决不同的概念。