我有一个应用程序,用户在完成“action A
”后收听传入的短信。此消息可能在5分钟后发出。我有两个选择:
1)在manifest
中声明。但后来我不希望我的receiver
一直在听。这个应用程序将每月使用一次。
2)从代码开始/停止。但是,假设用户在制作“action A
”后关闭了应用。据我所知,接收器无法启动。
是否有中间路径?我在receiver
中声明manifest
,但是,从程序代码开始和停止它。
此外,在receiver
按钮处理程序中从manifest
开始/停止OnClick()
是一个好主意。我看到的其他任何地方,都在onResume()
和onPause()
完成。
答案 0 :(得分:2)
是否有中间路径?
我不是禅宗大师,但在这种情况下,是的。在清单中注册接收器,android:enabled
设置为您想要的一切(true
,如果它应该监听广播,否则false
。通过在setComponentEnabledSetting()
上调用PackageManager
来切换Java代码中的状态。