我对我正在开发的应用程序中遇到的这种行为感到困惑……
短:
当用户按下后退按钮离开应用程序然后按下最近的按钮重新进入应用程序时,意图数据不会清除. (每隔一个案例,意图数据被清除)
长:
我有一个带有启动画面的应用程序,用于收集从URI方案传入的数据.然后我设置了将数据转发到主要活动的意图.主要活动包含片段,基于主/详细模板.
在所有情况下都清除了意图数据,例如按下主页按钮然后返回应用程序,按下最近的应用程序按钮,然后返回到应用程序等.唯一不会清除意图数据的情况是当用户按下后退按钮,然后是最近的应用程序按钮以返回应用程序.
涉及意图的相关代码片段:
// Splash Screen Activity @Override protected 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 data Intent 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 @Override public void onPause() { super.onPause(); // Clear intent data Intent intent = getIntent(); intent.putExtra("id1",""); intent.putExtra("id2",""); intent.putExtra("id3",""); }
我想要注意,我也尝试过使用intent.removeExtra(“id1”),但这也没有用.
知道发生了什么事吗?即使始终调用onPause()来清除意图数据,就好像Android保持旧意图一样.