在活动关闭之前调用的指令



我试图了解用户是否启用了管理员,然后更新一个复选框(在恢复中)。

问题是允许用户启用管理员的活动已启动,并且无需等待用户决定即可启动以下代码。怎么能绕过它?

private void doAttivaRimuoviAdmin() {
    if (isAdminAttivo()) {
        mDPM.removeActiveAdmin(mDeviceAdminSample);
    } else {
        Intent localIntent = new Intent("android.app.action.ADD_DEVICE_ADMIN");
        localIntent.putExtra("android.app.extra.DEVICE_ADMIN", mDeviceAdminSample);
        localIntent.putExtra("android.app.extra.ADD_EXPLANATION",
                getString(R.string.spiegazione_amministratore));
        startActivityForResult(localIntent, 1);
        // se non è stato dato il permesso, non attiva la checkbox
        Editor e = mPrefs.edit();
        if (isAdminAttivo()) {
            e.putBoolean("spegnischermoabilitato", true);
        } else {
            e.putBoolean("spegnischermoabilitato", false);
        }
        e.commit();
        Log.i(getString(R.string.app_name), ""+ mPrefs.getBoolean("spegnischermoabilitato", false));
    }
}

用糟糕的话来说,共享偏好"spegnischermoabilitato"总是包含FALSE。

来自 startActivityForResult() 的文档:

启动您希望在

完成后获得结果的活动。 当此活动退出时,您的 onActivityResult() 方法将是 使用给定的请求代码调用。使用负请求代码是 与调用 startActivity(Intent) 相同(活动不会以 子活动)。

换句话说,你需要覆盖onActivityResult()。在此方法中,您必须检查该方法是否使用您在startActivityForResult()中设置的请求代码调用,以及它是否包含预期的结果代码。如果它确实写下了您的偏好。

相关内容

  • 没有找到相关文章

最新更新