下次调用相同的活动时,无法从Pendingintent接收更新的额外内容

时间:2016-03-28 16:23:49

标签: android

基本上我正在尝试使用新数据打开已经处于活动状态的活动。我已通过通知向Pendingintent添加了Bundle和附加功能。但是我无法获得活动中的更新值。 这是我的代码

    Intent in = new Intent(c, HomePageActivity.class);
        Bundle bundle = new Bundle();
        bundle.putBoolean("id", "1234");
        in.putExtras(bundle);

    in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            | Intent.FLAG_ACTIVITY_SINGLE_TOP
            | Intent.FLAG_ACTIVITY_NEW_TASK);

    in.setAction(Long.toString(System.currentTimeMillis()));

    PendingIntent pi = PendingIntent.getActivity(c, 0, in,
            PendingIntent.FLAG_UPDATE_CURRENT);

OnSesume()在调用MyActivity中,但id值是旧的' 1111'

    @Override
protected void onResume() {
    super.onResume();

    if (getIntent().hasExtra("id")) {
        Log.e("id", getIntent().getStringExtra("id"));
    }
}

但它会返回' 1111'

请给我一个解决方案。

2 个答案:

答案 0 :(得分:0)

在尝试获取新值之前,请再次尝试调用getIntent()。getExtras()。这应该更新额外的值。

答案 1 :(得分:0)

尝试使用onNewIntent

public void onNewIntent(Intent intent)
    {
        super.onNewIntent(intent);
        setIntent(intent);
        if(intent.getExtras()!=null)
        {
          String id = intent.getExtras().getStringExtra("id");
            updateValues(id);
        }
    }