我的Android广播接收器从未被触发
在AndroidManifest.xml中,我有以下内容:我的Android广播接收器从未被触发,android,broadcastreceiver,broadcast,android-broadcast,android-broadcastreceiver,Android,Broadcastreceiver,Broadcast,Android Broadcast,Android Broadcastreceiver,在AndroidManifest.xml中,我有以下内容: <receiver android:name=".MyBroadcast" android:exported="true"/> 我试图在关闭应用程序后运行它,以便在后台播放音乐。onReceive()方法仅在您注册的事件发生时调用。您尚未声明将触发onReceive()方法的事件。因此,广播接收器不知道它应该听什么 您应该从Android文档中了解更多关于广播接收器和活动生命周期方法的信息 这类似于要求X个人(任何人)为
<receiver android:name=".MyBroadcast" android:exported="true"/>
我试图在关闭应用程序后运行它,以便在后台播放音乐。onReceive()方法仅在您注册的事件发生时调用。您尚未声明将触发onReceive()方法的事件。因此,广播接收器不知道它应该听什么
您应该从Android文档中了解更多关于广播接收器和活动生命周期方法的信息
这类似于要求X个人(任何人)为你从市场上获得。他在市场上寻找,但他不知道那是什么。所以,很明显,他不能帮你拿。你需要告诉接收者要寻找什么。这是因为你从来没有指定你实际上在听什么意图 您需要注册广播接收器,以便在清单中使用或在运行时动态地侦听特定广播(事件)。有关差异的更多讨论,请参阅 下面是一个如何在清单中执行此操作的示例(来自链接问题):
意图(您将希望用更合适的意图来替换它,以反映您希望何时运行它)
这里有一个非常有用的意图列表,你可以听听。您可以从那里(或从其中一个库)选择广播,或者,如果您正在侦听应用程序中发生的事件,您可以自己引发广播
此外,请确保所讨论的事件确实被提出。如果您正在收听的广播从未发生,则广播接收器将永远不会被触发
有关相关阅读,请参阅(这是Android广播接收器实现的设计模式)。onReceive()
方法仅在您注册的事件发生时调用。您尚未声明将触发onReceive()
方法的事件。因此,广播接收器不知道它应该听什么
您应该从Android文档中了解更多关于广播接收器和活动生命周期方法的信息
我认为你不需要使用广播接收器。当应用程序关闭时,您可以使用活动生命周期方法执行任何您想执行的操作。我正在尝试制作一个广播,该广播将在应用程序关闭后启动Radio.class。(我是java新手)onReceive()
方法仅在您注册的事件发生时调用。您尚未声明将触发onReceive()
方法的事件。因此,广播接收器不知道它应该听什么。@rayan你应该用你最近的评论编辑你的答案(或者删除原文并将评论作为答案发布)-你的评论实际上是对问题的回答。(事实上,这是正确的答案。)你所说的“申请关闭后”是什么意思。这是指应用程序进程终止时还是应用程序处于后台。您能否澄清您正在收听的广播?您能否澄清“关闭后运行应用程序”的含义?您尝试收听的目的是什么?结果如何?@Skyterix你在舱单上放了什么?这个特别的意图是在某个时候广播的吗?@Skyterix我只是举个例子-用你真正想要听的意图替换
行for@Skyterix您希望何时触发广播接收器?哪个项目?它是发生在应用程序内部的事件还是发生在应用程序外部的事件?
package com.myapp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent1 = new Intent(context, Radio.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
<receiver android:name="TestReceiver">
<intent-filter>
<action android:name="android.media.AUDIO_BECOMING_NOISY"/>
</intent-filter>
</receiver>