我正在尝试使用Activity
和Intent
实例在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}},无论我是使用后退按钮还是转移到主屏幕?
答案 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获取更新的方法。