嗨有没有一种方法来以编程方式编程创建一个静态广播接收器?以编程方式创建静态android广播接收器
从它说有使用recievers两种方法文档:通过清单
- 寄存器(静态,当应用程序没有运行可以使用)
- 注册通过应用程序上下文(动态的,可以只只要活动/应用程序正在运行)
我找不到一种方法来以编程方式注册一个静态接收器。有没有办法做到这一点?
嗨有没有一种方法来以编程方式编程创建一个静态广播接收器?以编程方式创建静态android广播接收器
从它说有使用recievers两种方法文档:通过清单
我找不到一种方法来以编程方式注册一个静态接收器。有没有办法做到这一点?
您不能在运行时修改清单。因此,您无法在运行时注册“静态”接收器。
您可以在运行时启用和禁用清单注册的接收器。将<receiver>
元素上的android:enabled
属性设置为您希望启动状态的任何属性(例如,禁用了false
)。然后,使用PackageManager
和setComponentEnabledSetting()
在运行时更改该启用状态。禁用的接收器不会响应广播。
很好,谢谢。 – jonney
//For dynamic execution
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
reciever = new IncomingCallReciever();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.PHONE_STATE");
registerReceiver(reciever, filter);
}
@Override
protected void onDestroy() {
if (reciever != null) {
unregisterReceiver(reciever);
reciever = null;
}
super.onDestroy();
}
您想要实现什么? – earthw0rmjim