无法通过android中的意图传递数据

时间:2018-04-26 06:33:30

标签: android android-intent

我正在从我的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中的onCreate()中收到的值:

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

我试图通过Intent传递一个布尔值,但我没有通过Intent中的Activity收到任何值。我甚至检查了onNewIntent。但我没有任何价值。

1 个答案:

答案 0 :(得分:1)

看起来没问题。尝试重建或清理您的项目。

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

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