android – 当用户按下按钮然后最近的应用程序按钮时,意图数据不会清除

android – 当用户按下按钮然后最近的应用程序按钮时,意图数据不会清除,第1张

概述我对我正在开发的应用程序中遇到的这种行为感到困惑…… 短: 当用户按下后退按钮离开应用程序然后按下最近的按钮重新进入应用程序时,意图数据不会清除. (每隔一个案例,意图数据被清除) 长: 我有一个带有启动画面的应用程序,用于收集从URI方案传入的数据.然后我设置了将数据转发到主要活动的意图.主要活动包含片段,基于主/详细模板. 在所有情况下都清除了意图数据,例如按下主页按钮然后返回应用程序,按下最 我对我正在开发的应用程序中遇到的这种行为感到困惑……

短:

当用户按下后退按钮离开应用程序然后按下最近的按钮重新进入应用程序时,意图数据不会清除. (每隔一个案例,意图数据被清除)

长:

我有一个带有启动画面的应用程序,用于收集从URI方案传入的数据.然后我设置了将数据转发到主要活动的意图.主要活动包含片段,基于主/详细模板.

在所有情况下都清除了意图数据,例如按下主页按钮然后返回应用程序,按下最近的应用程序按钮,然后返回到应用程序等.唯一不会清除意图数据的情况是当用户按下后退按钮,然后是最近的应用程序按钮以返回应用程序.

涉及意图的相关代码片段:

// Splash Screen Activity@OverrIDeprotected voID onPostExecute(VoID result) {    // Data is done downloading,pass notice and app IDs to next activity    Intent intent = new Intent(getBaseContext(),ListActivity.class);    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_top | Intent.FLAG_ACTIVITY_NEW_TASK);    intent.putExtra("ID1",ID1);    intent.putExtra("ID2",ID2);    intent.putExtra("ID3",ID3);    startActivity(intent);    finish();}// ListActivity retrIEving intent dataIntent intent = getIntent();if (intent != null) {    this.ID1 = intent.getExtras().getString("ID1");    this.ID2 = intent.getExtras().getString("ID2");    this.ID3 = intent.getExtras().getString("ID3");}// ListActivity clearing intent data@OverrIDepublic voID onPause() {    super.onPause();    // Clear intent data    Intent intent = getIntent();    intent.putExtra("ID1","");    intent.putExtra("ID2","");    intent.putExtra("ID3","");}

我想要注意,我也尝试过使用intent.removeExtra(“ID1”),但这也没有用.

知道发生了什么事吗?即使始终调用onPause()来清除意图数据,就好像AndroID保持旧意图一样.

解决方法 实际上,这是因为AndroID从历史中启动应用程序,因此意图附加功能仍在那里

参考这个问题Android: Starting app from ‘recent applications’ starts it with the last set of extras used in an intent

所以添加这个条件来处理这个特殊情况为我修复了它

int flags = getActivity().getIntent().getFlags();       if ((flags & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {    // The activity was launched from history    // remove extras here}
总结

以上是内存溢出为你收集整理的android – 当用户按下按钮然后最近的应用程序按钮时,意图数据不会清除全部内容,希望文章能够帮你解决android – 当用户按下按钮然后最近的应用程序按钮时,意图数据不会清除所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1134672.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存