Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
这个样子的

解决方案 »

  1.   

    Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);试了一下,可行
    设置一下启动模式,singleTask试了一下,发现收到第二条短信时,第一个MyActivity执行了onPause()方法,而第二个MyActivity只执行了onResume()方法,并没有执行onCreate()和onStart()方法
      

  2.   

    在onPause方法中finish掉,下次开新的
      

  3.   


    我不能直接把前面的Activity给finish掉,因为用户可能会返回查看之前的短信
      

  4.   

    Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP )即可。
    建议楼主看看intent flag参数的资料singtask  new task singtop  singleinstance
      

  5.   


    如果MyActivity没有关闭,那么就不会执行onCreate事件,而会执行
    onNewIntent事件,建立楼主可以写一下,就像监听onDestroy、onResume、onStop一样。
     public void onNewIntent(Intent intent){
        Log.e(TAG,"onNewIntent");
        super.onNewIntent(intent);
    }
      

  6.   

    Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP )这样还是存在一个问题,那就是第2条短信的Activity执行完onResum()后,会执行第1条短信的Activity的onDestroy()。这样关闭第2条短信后,就无法再看到第1条短信了。
    怎样才能做到关闭第N条短信的Activity后,还能看到之前的N-1条短信的Activity?
      

  7.   

    Intent.FLAG_ACTIVITY_CLEAR_TOP  没必要清除栈顶吧??
      

  8.   

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);