Skip to content

Instantly share code, notes, and snippets.

@kimukou
Created November 5, 2012 05:25
Show Gist options
  • Save kimukou/4015498 to your computer and use it in GitHub Desktop.
Save kimukou/4015498 to your computer and use it in GitHub Desktop.
LocalBroadcastManager_test
<receiver android:name=".HeadsetStateReceiver" android:enabled="false" android:process=":remote">
<intent-filter>
<action android:name="android.intent.action.HEADSET_PLUG"/>
</intent-filter>
</receiver>
//private android.support.v4.content.LocalBroadcastManager mLocalBroadcastManager;
public static String ACTION_SERVICE_STATE_CHANGED = "android.intent.action.SERVICE_STATE";
@Override
public void onResume() {
super.onResume();
//if(mLocalBroadcastManager==null)mLocalBroadcastManager = android.support.v4.content.LLocalBroadcastManager.getInstance(this.getApplicationContext());
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_HEADSET_PLUG);
filter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
try {
if(headsetStateReceiver==null)headsetStateReceiver = new HeadsetStateReceiver();
enableReceiver(true,headsetStateReceiver);
registerReceiver(headsetStateReceiver, filter);
//mLocalBroadcastManager.registerReceiver(headsetStateReceiver, filter);
} catch (Exception e) {}
}
@Override
protected void onPause() {
try {
unregisterReceiver(headsetStateReceiver);
//mLocalBroadcastManager.unregisterReceiver(headsetStateReceiver);
enableReceiver(false,headsetStateReceiver);
} catch (Exception e) {}
super.onPause();
}
@Override
public void onLowMemory() {
super.onLowMemory();
Log.v(TAG, "===onLowMemory===");
try {
unregisterReceiver(headsetStateReceiver);
//mLocalBroadcastManager.unregisterReceiver(headsetStateReceiver);
enableReceiver(false,headsetStateReceiver);
} catch (Exception e) {}
}
private void enableReceiver(boolean enabled,BroadcastReceiver receiver) {
PackageManager pm = getPackageManager();
ComponentName receiverName = new ComponentName(this, receiver.getClass());
int newState;
if (enabled) {
newState = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
} else {
newState = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
}
pm.setComponentEnabledSetting(receiverName, newState, PackageManager.DONT_KILL_APP);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment