Example usage for android.content.pm PackageManager DONT_KILL_APP

List of usage examples for android.content.pm PackageManager DONT_KILL_APP

Introduction

In this page you can find the example usage for android.content.pm PackageManager DONT_KILL_APP.

Prototype

int DONT_KILL_APP

To view the source code for android.content.pm PackageManager DONT_KILL_APP.

Click Source Link

Document

Flag parameter for #setComponentEnabledSetting(android.content.ComponentName,int,int) to indicate that you don't want to kill the app containing the component.

Usage

From source file:es.javocsoft.android.lib.toolbox.ToolBox.java

private static void application_activityAliasStatusSwitch(Context context, Class appClass,
        String appLaunchAlias, int status) {
    ComponentName component = new ComponentName(appClass.getPackage().getName(),
            appClass.getPackage().getName() + "." + appLaunchAlias);

    if (status == PackageManager.COMPONENT_ENABLED_STATE_DISABLED && (context.getPackageManager()
            .getComponentEnabledSetting(component) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
            || context.getPackageManager()
                    .getComponentEnabledSetting(component) == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT)) {
        context.getPackageManager().setComponentEnabledSetting(component,
                PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

    } else if (status == PackageManager.COMPONENT_ENABLED_STATE_ENABLED && (context.getPackageManager()
            .getComponentEnabledSetting(component) == PackageManager.COMPONENT_ENABLED_STATE_DISABLED
            || context.getPackageManager()
                    .getComponentEnabledSetting(component) == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT)) {
        context.getPackageManager().setComponentEnabledSetting(component,
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
    }//from  w w  w  .  jav a  2s .  co  m
}

From source file:com.google.android.marvin.mytalkback.TalkBackService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when TalkBack resumes from a
 * suspended state./*from w w w.j  a va 2  s . c  o  m*/
 */
private void resumeInfrastructure() {
    if (isServiceActive()) {
        LogUtils.log(this, Log.ERROR, "Attempted to resume while not suspended");
        return;
    }

    setServiceState(ServiceState.ACTIVE);
    stopForeground(true);

    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
    info.flags |= AccessibilityServiceInfo.DEFAULT;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REPORT_VIEW_IDS;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_FILTER_KEY_EVENTS;
    info.notificationTimeout = 0;

    // Ensure the initial touch exploration request mode is correct.
    if (SUPPORTS_TOUCH_PREF && SharedPreferencesUtils.getBooleanPref(mPrefs, getResources(),
            R.string.pref_explore_by_touch_key, R.bool.pref_explore_by_touch_default)) {
        info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
    }

    setServiceInfo(info);

    if (mCallStateMonitor != null) {
        registerReceiver(mCallStateMonitor, mCallStateMonitor.getFilter());
    }

    if (mRingerModeAndScreenMonitor != null) {
        registerReceiver(mRingerModeAndScreenMonitor, mRingerModeAndScreenMonitor.getFilter());
    }

    if (mTextToSpeechManager != null) {
        mTextToSpeechManager.startDiscovery();
    }

    if (mRadialMenuManager != null) {
        registerReceiver(mRadialMenuManager, mRadialMenuManager.getFilter());
    }

    if (mVolumeMonitor != null) {
        registerReceiver(mVolumeMonitor, mVolumeMonitor.getFilter());
    }

    mPrefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    // Add the broadcast listener for gestures.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_PERFORM_GESTURE);
    registerReceiver(mActiveReceiver, filter, PERMISSION_TALKBACK, null);

    // Enable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    reloadPreferences();
}

From source file:com.google.android.marvin.mytalkback.TalkBackService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when TalkBack resumes from a
 * suspended state.//from w  w w.  j a v  a 2s .c  om
 */
private void suspendInfrastructure() {
    if (!isServiceActive()) {
        LogUtils.log(this, Log.ERROR, "Attempted to suspend while already suspended");
        return;
    }

    interruptAllFeedback();
    setServiceState(ServiceState.SUSPENDED);

    setServiceInfo(new AccessibilityServiceInfo());

    mPrefs.unregisterOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    unregisterReceiver(mActiveReceiver);

    if (mCallStateMonitor != null) {
        unregisterReceiver(mCallStateMonitor);
    }

    if (mRingerModeAndScreenMonitor != null) {
        unregisterReceiver(mRingerModeAndScreenMonitor);
    }

    if (mRadialMenuManager != null) {
        unregisterReceiver(mRadialMenuManager);
        mRadialMenuManager.clearCache();
    }

    if (mVolumeMonitor != null) {
        unregisterReceiver(mVolumeMonitor);
        mVolumeMonitor.releaseControl();
    }

    if (mShakeDetector != null) {
        mShakeDetector.setEnabled(false);
    }

    if (SUPPORTS_TOUCH_PREF) {
        final ContentResolver resolver = getContentResolver();
        resolver.unregisterContentObserver(mTouchExploreObserver);
    }

    // Disable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
            PackageManager.DONT_KILL_APP);

    // Remove any pending notifications that shouldn't persist.
    final NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    nm.cancelAll();

    if (mTtsOverlay != null) {
        mTtsOverlay.hide();
    }
}

From source file:com.google.android.marvin.talkback.TalkBackService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when TalkBack resumes from a
 * suspended state./*from   w w w  . j  ava  2 s.  c om*/
 */
private void resumeInfrastructure() {
    if (isServiceActive()) {
        LogUtils.log(this, Log.ERROR, "Attempted to resume while not suspended");
        return;
    }

    setServiceState(ServiceState.ACTIVE);
    stopForeground(true);

    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
    info.flags |= AccessibilityServiceInfo.DEFAULT;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REPORT_VIEW_IDS;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_FILTER_KEY_EVENTS;
    info.notificationTimeout = 0;

    // Ensure the initial touch exploration request mode is correct.
    if (SUPPORTS_TOUCH_PREF && SharedPreferencesUtils.getBooleanPref(mPrefs, getResources(),
            R.string.pref_explore_by_touch_key, R.bool.pref_explore_by_touch_default)) {
        info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
    }

    setServiceInfo(info);

    if (mCallStateMonitor != null) {
        registerReceiver(mCallStateMonitor, mCallStateMonitor.getFilter());
    }

    if (mRingerModeAndScreenMonitor != null) {
        registerReceiver(mRingerModeAndScreenMonitor, mRingerModeAndScreenMonitor.getFilter());
    }

    if (mTextToSpeechManager != null) {
        mTextToSpeechManager.startDiscovery();
    }

    if (mRadialMenuManager != null) {
        registerReceiver(mRadialMenuManager, mRadialMenuManager.getFilter());
    }

    if (mVolumeMonitor != null) {
        registerReceiver(mVolumeMonitor, mVolumeMonitor.getFilter());
    }

    if (mPackageReceiver != null) {
        registerReceiver(mPackageReceiver, mPackageReceiver.getFilter());
        if (mLabelManager != null) {
            mLabelManager.ensureDataConsistency();
        }
    }

    mPrefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    // Add the broadcast listener for gestures.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_PERFORM_GESTURE_ACTION);
    registerReceiver(mActiveReceiver, filter, PERMISSION_TALKBACK, null);

    // Enable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    reloadPreferences();
}

From source file:com.google.android.marvin.screenspeak.ScreenSpeakService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when ScreenSpeak resumes from a
 * suspended state./*  w ww  .  j a  v a  2 s . c  o m*/
 */
private void resumeInfrastructure() {
    if (isServiceActive()) {
        if (LogUtils.LOG_LEVEL <= Log.ERROR) {
            Log.e(LOGTAG, "Attempted to resume while not suspended");
        }
        return;
    }

    setServiceState(SERVICE_STATE_ACTIVE);
    stopForeground(true);

    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
    info.flags |= AccessibilityServiceInfo.DEFAULT;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
        info.flags |= AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS;
        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        info.flags |= AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS;
    }
    info.notificationTimeout = 0;

    // Ensure the initial touch exploration request mode is correct.
    if (mSupportsTouchScreen && SharedPreferencesUtils.getBooleanPref(mPrefs, getResources(),
            R.string.pref_explore_by_touch_key, R.bool.pref_explore_by_touch_default)) {
        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
    }

    setServiceInfo(info);

    if (mRingerModeAndScreenMonitor != null) {
        registerReceiver(mRingerModeAndScreenMonitor, mRingerModeAndScreenMonitor.getFilter());
        // It could now be confused with the current screen state
        mRingerModeAndScreenMonitor.updateScreenState();
    }

    if (mVolumeMonitor != null) {
        registerReceiver(mVolumeMonitor, mVolumeMonitor.getFilter());
    }

    if (mBatteryMonitor != null) {
        registerReceiver(mBatteryMonitor, mBatteryMonitor.getFilter());
    }

    if (mPackageReceiver != null) {
        registerReceiver(mPackageReceiver, mPackageReceiver.getFilter());
        if (mLabelManager != null) {
            mLabelManager.ensureDataConsistency();
        }
    }

    if (mSideTapManager != null) {
        registerReceiver(mSideTapManager, SideTapManager.getFilter());
    }

    mPrefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    // Add the broadcast listener for gestures.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_PERFORM_GESTURE_ACTION);
    registerReceiver(mActiveReceiver, filter, PERMISSION_SCREENSPEAK, null);

    // Enable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    reloadPreferences();

    if (mDimScreenController.isDimmingEnabled()) {
        mDimScreenController.makeScreenDim();
    }
}

From source file:com.nbplus.vbroadlauncher.HomeLauncherActivity.java

protected void resetPreferredLauncherAndOpenChooser() {
    PackageManager packageManager = getPackageManager();
    ComponentName componentName = new ComponentName(this, HomeLauncherActivity.class);
    packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    //        Intent selector = new Intent(Intent.ACTION_MAIN);
    //        selector.addCategory(Intent.CATEGORY_HOME);
    //        selector.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    //        startActivity(selector);

    //        Intent fakeIntent = new Intent();
    //        fakeIntent.setAction(Intent.ACTION_MAIN);
    //        fakeIntent.addCategory(Intent.CATEGORY_HOME);
    //        fakeIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
    //                | Intent.FLAG_ACTIVITY_FORWARD_RESULT
    //                | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP
    //                | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    //        startActivity(fakeIntent);

    packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
            PackageManager.DONT_KILL_APP);
}

From source file:com.google.android.marvin.talkback.TalkBackService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when TalkBack resumes from a
 * suspended state.//from w ww.j  a  va  2s.  c om
 */
private void suspendInfrastructure() {
    if (!isServiceActive()) {
        LogUtils.log(this, Log.ERROR, "Attempted to suspend while already suspended");
        return;
    }

    interruptAllFeedback();
    setServiceState(ServiceState.SUSPENDED);

    setServiceInfo(new AccessibilityServiceInfo());

    mPrefs.unregisterOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    unregisterReceiver(mActiveReceiver);

    if (mCallStateMonitor != null) {
        unregisterReceiver(mCallStateMonitor);
    }

    if (mRingerModeAndScreenMonitor != null) {
        unregisterReceiver(mRingerModeAndScreenMonitor);
    }

    if (mRadialMenuManager != null) {
        unregisterReceiver(mRadialMenuManager);
        mRadialMenuManager.clearCache();
    }

    if (mVolumeMonitor != null) {
        unregisterReceiver(mVolumeMonitor);
        mVolumeMonitor.releaseControl();
    }

    if (mPackageReceiver != null) {
        unregisterReceiver(mPackageReceiver);
    }

    if (mShakeDetector != null) {
        mShakeDetector.setEnabled(false);
    }

    if (SUPPORTS_TOUCH_PREF) {
        final ContentResolver resolver = getContentResolver();
        resolver.unregisterContentObserver(mTouchExploreObserver);
    }

    // Disable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
            PackageManager.DONT_KILL_APP);

    // Remove any pending notifications that shouldn't persist.
    final NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    nm.cancelAll();

    if (mTtsOverlay != null) {
        mTtsOverlay.hide();
    }
}

From source file:com.csipsimple.service.SipService.java

private void applyComponentEnablingState(boolean active) {
    int enableState = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
    if (active && prefsWrapper.getPreferenceBooleanValue(SipConfigManager.INTEGRATE_TEL_PRIVILEGED)) {
        // Check whether we should register for stock tel: intents
        // Useful for devices without gsm
        enableState = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
    }/*from  ww w  .  j  a v a  2s . c  om*/
    PackageManager pm = getPackageManager();

    ComponentName cmp = new ComponentName(this, "com.csipsimple.ui.PrivilegedOutgoingCallBroadcaster");
    try {
        if (pm.getComponentEnabledSetting(cmp) != enableState) {
            pm.setComponentEnabledSetting(cmp, enableState, PackageManager.DONT_KILL_APP);
        }
    } catch (IllegalArgumentException e) {
        Log.d(THIS_FILE,
                "Current manifest has no PrivilegedOutgoingCallBroadcaster -- you can ignore this if voluntary",
                e);
    }
}

From source file:com.google.android.marvin.screenspeak.ScreenSpeakService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be called from
 * {@link #onServiceConnected} and when ScreenSpeak resumes from a suspended state.
 *///  w  w w  .  j ava 2 s  .co  m
private void suspendInfrastructure() {
    if (!isServiceActive()) {
        if (LogUtils.LOG_LEVEL <= Log.ERROR) {
            Log.e(LOGTAG, "Attempted to suspend while already suspended");
        }
        return;
    }

    mDimScreenController.makeScreenBright();

    interruptAllFeedback();
    setServiceState(SERVICE_STATE_SUSPENDED);

    // Some apps depend on these being set to false when ScreenSpeak is disabled.
    if (mSupportsTouchScreen) {
        requestTouchExploration(false);
    }

    if (SUPPORTS_WEB_SCRIPT_TOGGLE) {
        requestWebScripts(false);
    }

    mPrefs.unregisterOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    unregisterReceiver(mActiveReceiver);

    if (mCallStateMonitor != null) {
        mCallStateMonitor.stopMonitor();
    }

    if (mRingerModeAndScreenMonitor != null) {
        unregisterReceiver(mRingerModeAndScreenMonitor);
    }

    if (mMenuManager != null) {
        mMenuManager.clearCache();
    }

    if (mVolumeMonitor != null) {
        unregisterReceiver(mVolumeMonitor);
        mVolumeMonitor.releaseControl();
    }

    if (mBatteryMonitor != null) {
        unregisterReceiver(mBatteryMonitor);
    }

    if (mPackageReceiver != null) {
        unregisterReceiver(mPackageReceiver);
    }

    if (mShakeDetector != null) {
        mShakeDetector.setEnabled(false);
    }

    // The tap detector is enabled through reloadPreferences
    if (mSideTapManager != null) {
        unregisterReceiver(mSideTapManager);
        mSideTapManager.onSuspendInfrastructure();
    }

    // Disable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
            PackageManager.DONT_KILL_APP);

    // Remove any pending notifications that shouldn't persist.
    final NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    nm.cancelAll();
}

From source file:com.android.settings.applications.CanBeOnSdCardChecker.java

@Override
public void onClick(DialogInterface dialog, int which) {
    if (mResetDialog == dialog) {
        final PackageManager pm = getActivity().getPackageManager();
        final IPackageManager mIPm = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
        final INotificationManager nm = INotificationManager.Stub
                .asInterface(ServiceManager.getService(Context.NOTIFICATION_SERVICE));
        final NetworkPolicyManager npm = NetworkPolicyManager.from(getActivity());
        final AppOpsManager aom = (AppOpsManager) getActivity().getSystemService(Context.APP_OPS_SERVICE);
        final Handler handler = new Handler(getActivity().getMainLooper());
        (new AsyncTask<Void, Void, Void>() {
            @Override/* ww w .j  a v  a 2  s  .  c  o m*/
            protected Void doInBackground(Void... params) {
                List<ApplicationInfo> apps = pm
                        .getInstalledApplications(PackageManager.GET_DISABLED_COMPONENTS);
                for (int i = 0; i < apps.size(); i++) {
                    ApplicationInfo app = apps.get(i);
                    try {
                        if (DEBUG)
                            Log.v(TAG, "Enabling notifications: " + app.packageName);
                        nm.setNotificationsEnabledForPackage(app.packageName, app.uid, true);
                    } catch (android.os.RemoteException ex) {
                    }
                    if (!app.enabled) {
                        if (DEBUG)
                            Log.v(TAG, "Enabling app: " + app.packageName);
                        if (pm.getApplicationEnabledSetting(
                                app.packageName) == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER) {
                            pm.setApplicationEnabledSetting(app.packageName,
                                    PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
                                    PackageManager.DONT_KILL_APP);
                        }
                    }
                }
                try {
                    mIPm.resetPreferredActivities(UserHandle.myUserId());
                } catch (RemoteException e) {
                }
                aom.resetAllModes();
                final int[] restrictedUids = npm.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
                final int currentUserId = ActivityManager.getCurrentUser();
                for (int uid : restrictedUids) {
                    // Only reset for current user
                    if (UserHandle.getUserId(uid) == currentUserId) {
                        if (DEBUG)
                            Log.v(TAG, "Clearing data policy: " + uid);
                        npm.setUidPolicy(uid, POLICY_NONE);
                    }
                }
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (DEBUG)
                            Log.v(TAG, "Done clearing");
                        if (getActivity() != null && mActivityResumed) {
                            if (DEBUG)
                                Log.v(TAG, "Updating UI!");
                            for (int i = 0; i < mTabs.size(); i++) {
                                TabInfo tab = mTabs.get(i);
                                if (tab.mApplications != null) {
                                    tab.mApplications.pause();
                                }
                            }
                            if (mCurTab != null) {
                                mCurTab.resume(mSortOrder);
                            }
                        }
                    }
                });
                return null;
            }
        }).execute();
    }
}