以编程方式启动/停止在manifest中声明的broadreceiver

时间:2013-07-22 17:05:44

标签: android broadcastreceiver

我有一个应用程序,用户在完成“action A”后收听传入的短信。此消息可能在5分钟后发出。我有两个选择:

1)在manifest中声明。但后来我不希望我的receiver一直在听。这个应用程序将每月使用一次。

2)从代码开始/停止。但是,假设用户在制作“action A”后关闭了应用。据我所知,接收器无法启动。

是否有中间路径?我在receiver中声明manifest,但是,从程序代码开始和停止它。

此外,在receiver按钮处理程序中从manifest开始/停止OnClick()是一个好主意。我看到的其他任何地方,都在onResume()onPause()完成。

1 个答案:

答案 0 :(得分:2)

  

是否有中间路径?

我不是禅宗大师,但在这种情况下,是的。在清单中注册接收器,android:enabled设置为您想要的一切(true,如果它应该监听广播,否则false。通过在setComponentEnabledSetting()上调用PackageManager来切换Java代码中的状态。