Android 安卓中止广播接收机

Android 安卓中止广播接收机,android,broadcastreceiver,abort,Android,Broadcastreceiver,Abort,我试图在退出应用程序后阻止BroadcastReceiver出现。到目前为止,我只让它在安装应用程序时显示祝酒词。它工作得非常好,只是如果我退出应用程序,接收器仍然处于活动状态。 这是AndroidManifest中的我的接收器代码: <receiver android:name=".MyBrowdcastreceiver" android:enabled="true"> <intent-filter> <action and

我试图在退出应用程序后阻止BroadcastReceiver出现。到目前为止,我只让它在安装应用程序时显示祝酒词。它工作得非常好,只是如果我退出应用程序,接收器仍然处于活动状态。 这是AndroidManifest中的我的接收器代码:

<receiver android:name=".MyBrowdcastreceiver" android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_INSTALL" />
            <data android:scheme="package" />
        </intent-filter>
    </receiver>

我想知道在我的主活动中,我应该在onDestroy()或onStop()方法中放入哪些会导致接收器停止的内容


谢谢。

您已经在清单文件中注册了接收者,即使您的应用程序未运行,该文件也会收到通知。您可以做两件事来满足您的需要:

  • 您需要以编程方式注册、注销接收器

  • 你可以选择布尔值,如果应用程序正在运行,则将其设置为true,否则为false。您可以在BraodCastreceRiver的onReceive()方法中使用此布尔值,在该方法中,您需要检查布尔值,并在布尔值为true时执行操作


  • 我试图通过编程方式注册接收器:br=new MyBrowdcastreceiver();IntentFilter IntentFilter=新的IntentFilter();intentFilter.addAction(添加了Intent.ACTION\u包);intentFilter.addAction(Intent.ACTION\u包\u安装);getApplicationContext().registerReceiver(br,intentFilter);但是现在toast没有显示Bebug并检查是否在onReceive()方法中得到调用。这就是问题所在…我这样做了,但它没有进入onReceive()方法。