我的应用中有一个广播接收器:
public class Ringmodechange extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
我的 AndroidManifest.xml :
<receiver
android:name=".Ringmodechange"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.media.RINGER_MODE_CHANGED" />
</intent-filter>
</receiver>
是否可以使用java代码注册和注销BroadcastReceiver?这个接收器正在后台工作。
实际上,我希望每次用户点击按钮时注册和取消注册接收器。
答案 0 :(得分:2)
是,可以使用ComponentName和PackageManager。
ComponentName component = new ComponentName(context, Ringmodechange.class)
context.getPackageManager().setComponentEnabledSetting(component, PackageManager. COMPONENT_ENABLED_STATE_ENABLED , PackageManager.DONT_KILL_APP);
要禁用它:
ComponentName component = new ComponentName(context, Ringmodechange.class)
context.getPackageManager().setComponentEnabledSetting(component, PackageManager. COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);
答案 1 :(得分:0)
有一些很好的posts涵盖了这个主题。
基本上,在您的DataFrame.rdd.map
和onStart
生命周期方法中,您应该进行更改。
在documentation for BroadcastReceivers中,他们讨论了广播的生命周期以及安全隐患。