如何解决不能在Android的IntentFilter中添加“ addAction”
| 你好我是一位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 Proposals \”
有谁能够帮助我?
解决方法
阅读您在问题中的注释(\“此行有多个标记-令牌上的语法错误”)\“,删除此令牌等),我仍然认为这是一个括号(或括号)不匹配的问题,不是让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\");
}
它将作为对象构造函数的一部分运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。