Передать результат от DeviceAdminReceiver обратно в вызывающую активность

Моя активность (MyActivity.class) выполняет метод установки блокировки экрана следующим образом:

startActivityForResult(Security.setLockscreen(getBaseContext()), 1001);

Затем мой класс приемника регистрирует изменение блокировки экрана следующим образом:

public class MyDeviceAdminReceiver extends DeviceAdminReceiver {
   @Override
   public void onPasswordChanged(Context context, Intent intent) {
        super.onPasswordChanged(context, intent);
        // pass result back to calling activity
        intent = new Intent(context, MyActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        intent.putExtra("pwdChange", true);
        context.startActivity(intent);
    }
}

А потом обрабатываю результат в методе onActivityResult из класса MyActivity.

Является ли вышеизложенное лучшим способом передать результат обратно в действие? Я заметил, что приведенное выше создает еще один экземпляр класса MyActivity вместо повторного использования существующего экземпляра класса MyActivity.

Есть ли другой более эффективный способ передачи данных обратно в вызывающую активность?


person ChuongPham    schedule 20.12.2012    source источник


Ответы (1)


Одно решение, которое я нашел, состоит в том, чтобы использовать SharedPreferences для передачи данных из класса DeviceAdminReceiver в класс Activity.

Я уверен, что есть другие рабочие решения, которые другие опытные разработчики могут опубликовать в этой теме, чтобы поделиться со всеми.

person ChuongPham    schedule 20.12.2012
comment
На данный момент достаточно использовать SharedPreferences. - person ; 11.05.2015