Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的Android广播接收器从未被触发_Android_Broadcastreceiver_Broadcast_Android Broadcast_Android Broadcastreceiver - Fatal编程技术网

我的Android广播接收器从未被触发

我的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个人(任何人)为

在AndroidManifest.xml中,我有以下内容:

<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>