首页 > 解决方案 > 无法通过android中的意图传递数据

问题描述

我正在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);

这就是我在 in 中接收值的Activity方式onCreate()

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

我正在尝试传递一个布尔值,但Intent我没有通过Intent. Activity我什至检查了onNewIntent. 但我没有得到任何价值。

标签: androidandroid-intent

解决方案


看起来还可以。尝试重建或清理您的项目。

但我强烈建议避免使用原始“字符串”作为参数的键。改用常量字段,例如:

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));

推荐阅读