即使更新,意图附加功能也保持不变

时间:2013-10-22 23:12:48

标签: android android-intent

我正在尝试使用ActivityIntent实例在Activity个实例之间传递一小段文字。

每当我使用操作栏中的后退按钮或导航在它们之间导航时,这似乎都可以正常工作。但是,如果我访问主屏幕然后重新启动应用程序,则会忽略传递的额外内容;第二个Intent似乎使用旧的public class ActivityA extends Activity { protected void goToResults(String results) { Intent intent = new Intent(this, ActivityB.class); intent.putExtra(Intent.EXTRA_TEXT, results); startActivity(intent); } } ,而不是新的。{/ p>

相关代码:

来源活动

public class ActivityB extends Activity {
    @Override
    public void onResume() {
        super.onResume();
        Bundle extras = getIntent().getExtras();
        String results = extras.getString(Intent.EXTRA_TEXT);
        // etc
    }
 }

目标活动

intent.setAction("action-" + UNIQUE_ID);

我尝试了很多不同的东西,包括:

Intent

(据我所知,PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 个实例未按额外内容进行比较)

PendingIntent

(我不需要Intent,但认为这可能会迫使Intent更新

有关如何在每次从ActivityA - >转换时强制ActivityB显示已更改数据的任何建议{{1}},无论我是使用后退按钮还是转移到主屏幕?

3 个答案:

答案 0 :(得分:18)

我记得曾经遇到过这个问题,我们通过将Intent.FLAG_ACTIVITY_CLEAR_TOP添加到您要发送的意图来解决它:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

或通过在您打算启动的活动中实施以下方法:

@Override
protected void onNewIntent(final Intent intent) {
        super.onNewIntent(intent);
        this.setIntent(intent);
}

我不是100%肯定再次修复它,相信它正在添加onNewIntent方法。 祝你好运,让我们知道。

答案 1 :(得分:2)

正如@Lauw所说

y2-f*y1

}

  

这条线为我解决了问题

protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    this.setIntent(intent);

答案 2 :(得分:0)

同时删除intent.removeExtra("key")的意图附加内容可以帮助更新传入的新内容。

当我尝试从应用B启动应用A时,这种方法对我的情况有帮助。当应用A未打开时,一切正常,但是当应用A已经打开时,我不得不使用{{1获取更新的方法。