假设一个Activity支持多个Intent, 比如,  SMS VIEW Activity支持 SMS VIEW和 SMS EDIT两个Intent。那么,当该Activity被启动时,在其OnCreate处可以通过GetIntent来区分Intent,这个没有问题。 但是,假设该Activity实例已经创建了, 然后被Pause, 然后在新的Activity中,又去启动SMS VIEW Activity了, 这时,由于SMS VIEW Activity已经在task中,所以,应该不会被创建,而是直接被Resume,此时,难道在Resume时也要去GetIntent??关键问题是, Activity第一次启动时,可以通过GetIntent来获取Intent, 然后,如果有其他的Activity再次启动已经存在的Activity时,此时如何获取Intent那???

解决方案 »

  1.   

    startActivity(intent);如果intent没有加任何属性,同时被启动的activity也没有设置任何属性,那么每次调用这个方法都会重新创建一个新的activity。
      

  2.   

    @Override
    protected void onNewIntent(Intent intent) 
    重载onNewIntent,里面的参数就是新的Intent!
      

  3.   

    我也碰到类似的困惑,怎样可以直接resume已经启动的activity呢?重载哪个类的onNewIntent?
      

  4.   

    应该可以的,当你调用完一个Activity时,完成相应的Activity操作时,应该消销毁this.finish();
      

  5.   

    2楼正解
    需要注意的就是
    @Override
    protected void onNewIntent(Intent intent);
    super.onNewIntent(intent);
    setIntent(intent);
      

  6.   

    @Override
    protected void onNewIntent(Intent intent) 
    重载onNewIntent,里面的参数就是新的Intent!当activity已经在堆栈中的时候,不会再次进入onCreate 直接进入onNewIntent然后onResume