package cm.android.util;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import cm.android.sdk.content.BaseBroadcastReceiver;
public class ExitHolder {
public static final String ACTION_EXIT_ACTIVITY = "cm.android.intent.action.EXIT_ACTIVITY";
private IExitActivity iExitActivity;
private ExitReceiver exitReceiver = new ExitReceiver();
public void init(Context context, IExitActivity iExitActivity) {
exitReceiver.registerLocal(context);
this.iExitActivity = iExitActivity;
}
public void deInit(Context context) {
this.iExitActivity = null;
exitReceiver.unregisterLocal(context);
}
public ExitHolder() {
}
public static void exit(Context context) {
LocalBroadcastManager.getInstance(context.getApplicationContext())
.sendBroadcast(new Intent(ACTION_EXIT_ACTIVITY));
}
private class ExitReceiver extends BaseBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (iExitActivity != null) {
iExitActivity.exitActivity();
}
}
@Override
public IntentFilter createIntentFilter() {
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_EXIT_ACTIVITY);
return filter;
}
}
public static interface IExitActivity {
void exitActivity();
}
}