Cant "addAction" для IntentFilter в android

Здравствуй. Я начинаю 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"); 

Я заметил еще одно – как я набираю фильтр. Ничего не появляется, просто сообщение «Нет предложений по умолчанию»,

Кто-нибудь может мне помочь?

Прочитав ваш комментарий выше в вопросе (« Несколько маркеров в этой строке – Ошибка синтаксиса на токене»), удалите этот токен и т. Д.), Я все еще думаю, что это проблема несоответствия скобки (или скобки), которая не позволяет 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"); } 

Он будет выполняться как часть конструктора объекта.