amI*_*mIT 5 android intentfilter
你好.我是一个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");
Run Code Online (Sandbox Code Playgroud)
我还观察了一件事 - 我输入'过滤器'.没有显示,只有消息"没有默认提案"
有谁能够帮我?
您正在尝试在方法范围之外运行代码,这在Java中是非法的(除非是赋值)。如果将代码更改为
private Context mContext;
IntentFilter filter = new IntentFilter();
{
filter.addAction("android.intent.action.SCREEN_OFF");
}
Run Code Online (Sandbox Code Playgroud)
它将作为对象构造函数的一部分运行。
在上面的问题中阅读你的评论(" 此行的多个标记 - 令牌上的语法错误")",删除此令牌等等,我仍然认为它是一个括号(或括号)不匹配问题,不让Eclipse理解代码.它可能是另一种方法.请仔细检查所有文件.您可以尝试删除大部分代码(只需将其复制到记事本),直到您缩小问题范围.
从开发指南(强调我的):
intent过滤器是IntentFilter类的一个实例.但是,由于Android系统在启动该组件之前必须了解组件的功能,因此通常不会在Java代码中设置intent过滤器,而是在应用程序的清单文件(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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7539 次 |
| 最近记录: |