【发布时间】:2018-08-13 02:11:35
【问题描述】:
我编写了一个扩展 BroadcastReceiver 的类,并在清单中声明了一个 Receiver。
有一条红色下划线表示class 或interface 预期”。
我的班级定义如下:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "onReceive: TEST");
}
}
这就是我在清单中声明接收者的方式:
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
</intent-filter>
</receiver>
我浏览了每个有类似问题的 SO 链接,并尝试/检查了以下所有内容,但均无效:
- 我检查以确保我在 BroadcastReceiver 类中有所需的方法
- 我检查以确保课堂上没有不匹配的括号,并过早关闭它
- 在清单中声明类时,我尝试以多种方式写出类的名称:
android:name=".MyBroadcastReceiver" android:name="com.claire.myapp.MyBroadcastReceiver" android:name="MyBroadcastReceiver"
有没有人知道为什么这些都没有在清单中被识别?或者为什么 Android Studio 确信 MyBroadcastReceiver 不是一个类?
非常感谢!
【问题讨论】:
-
MyBroadcastReceiver是内部类吗? -
它是一个外部类,除了onRecieve方法之外没有其他任何东西
-
是否在 标签内? -
是的,
在 标签内,我也在 标签外尝试过,但仍然在 内,但都没有工作。 -
发布您的完整清单文件,发布图像屏幕截图,显示您在 src 文件夹中添加 MyBroadcastReceiver.java 的路径。
标签: java android broadcastreceiver receiver