如何在启用“不保持活动”时修改意图?

时间:2018-04-02 11:09:08

标签: android

该应用已SplashActivity正常启动并通过深层链接启动。在以后的情况下,SplashActivity会创建Intent,从深层链接设置数据,然后启动MainActivityMainActivity检查数据,并对正常启动和深层链接启动采取不同的行为。

当我启用“不要保留活动”并通过深层链接启动应用程序时,当我转到后台并返回MainActivity时,会使用深层链接意图重新创建它。

我尝试使用IntentonDestroy修改onSaveInstanceStateremoveExtra中的setIntent,但是当我转到后台并返回时,意图仍然是来自deeplink的相同,额外的仍然存在。我还尝试检查LAUNCHED_FROM_HISTORY的意图标志,但是当我调试时,app标志每次都是0。

我不需要该应用程序的行为就像它从历史记录启动时使用deeplink启动的那样。在这种情况下是否可以保留意图修改?

2 个答案:

答案 0 :(得分:-1)

你需要在onPause中修改你的意图,你在onPause之后所做的一切都不会被保存,你甚至可以考虑在你使用它之后修改你的意图以建立你的深层链接,我想这也会有用

答案 1 :(得分:-1)

onCreate阻止中,尝试删除您发送给活动的Intent中的深层链接键

int flags = getIntent().getFlags();
if ((flags & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
   // The activity was launched from history
   // remove extras here to prevent the app from retaining the deep linking intent
   getIntent().removeExtra(key);
 } else {
    // get data from intent normally
    String s = getIntent().getStringExtra(key)
 }

这可能会阻止Activity保留之前的Intent