невозможно передать данные через намерения в Android - PullRequest
0 голосов
/ 26 апреля 2018

Я запускаю Activity из моего Application.java файла, как показано ниже:

Intent intent = new Intent(getApplicationContext(), PinLoginActivity.class);
intent.putExtra("LockScreen", true);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

Вот как я получаю значение в Activity in onCreate():

lockScreen = getIntent().getBooleanExtra("LockScreen", false);

Я пытаюсь передать логическое значение через Intent, но я не получаю никакого значения через Intent в Activity.Я даже проверил onNewIntent.Но я не получаю никакого значения.

1 Ответ

0 голосов
/ 26 апреля 2018

Похоже, все в порядке.Попробуйте перестроить или очистить ваш проект.

Но я настоятельно рекомендую избегать использования необработанной "строки" в качестве ключа для параметров.Вместо этого используйте константные поля, например:

class MyActivity extends Activity {
    ...
    public final static String LOCK_SCREEN_PARAM = "LockScreen";
    public static Intent getIntent (Context context, bool lockScreen){
        Intent intent = new Intent(context, MyActivity.class);
        intent.putExtra(LOCK_SCREEN_PARAM, true);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        return intent;
    }

    void onCreate(Bundle savedInstanceState) {
       ...
       lockScreen = getIntent().getExtras().getBoolean(LOCK_SCREEN_PARAM);
       ...
   }
}

А когда вы начинаете свою деятельность:

startActivity(MyActivity.getIntent(getApplicationContext(), true));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...