2012-12-20 3 views
0

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

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.

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

ответ

0

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

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

+0

Достаточно использовать 'SharedPreferences'. –

Смежные вопросы