squ*_*les 8 android android-intent
我试图在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);
}
}
Run Code Online (Sandbox Code Playgroud)
目的地活动
public class ActivityB extends Activity {
@Override
public void onResume() {
super.onResume();
Bundle extras = getIntent().getExtras();
String results = extras.getString(Intent.EXTRA_TEXT);
// etc
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多不同的东西,包括:
intent.setAction("action-" + UNIQUE_ID);
Run Code Online (Sandbox Code Playgroud)
(据我所知,Intent
实例不按额外内容进行比较)
PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Run Code Online (Sandbox Code Playgroud)
(我不需要PendingIntent
,但认为这可能会迫使Intent
更新)
有关如何在Intent
每次从ActivityA
- > 转换时强制显示已更改数据的任何建议ActivityB
,无论我是使用后退按钮还是转移到主屏幕?
Lau*_*auw 18
我记得曾经遇到过这个问题,我们通过将Intent.FLAG_ACTIVITY_CLEAR_TOP添加到您发送的意图来解决它:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)
或者通过在您想要启动的活动中实施以下方法:
@Override
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
this.setIntent(intent);
}
Run Code Online (Sandbox Code Playgroud)
我不是100%肯定再次修复它,相信它是添加onNewIntent方法.祝你好运,保持联系.
归档时间: |
|
查看次数: |
5871 次 |
最近记录: |