美文网首页
onNewIntent的调用时机

onNewIntent的调用时机

作者: Blueenchan_382e | 来源:发表于2019-07-06 16:33 被阅读0次

     默认情况下(LaunchMode=Startand)使用new Intent()方法从MainActivity跳转到main2Activity再跳转回MainActivity时会重新创建一个新的FirstActivity,重新执行onCreate()等方法并将MainActivity存放在栈中;而如果你在AndroidManifest.xml中配置LaunchMode为SingleTask,SingleInstance,SingleTop的话,执行上述操作时,会去调用onnewIntent方法,不会去调用onCreate()方法;

    (1)清单文件中定义:

    (2)MainActivity和Main2Activity中的操作

    MainActivity中重写onNewIntent方法 Main2Activity跳转回MainActivity

    (3)结果就会如预期一样执行Mainactivity中的onNewIntent方法

    特别注意:可以执行onNewIntent方法的前提是该Activity存在在堆栈中,如果在跳转回该Activity之前目标Activity已经从堆栈中移除了,则不会执行该方法。

    判断Activity是否仍存在在堆栈中:

    ActivityManager mAM= (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

    List list = mAM.getRunningTasks(2);

    if(list!=null && list.size()>0){

    for(int i=0;i

    ComponentName name = list.get(i).baseActivity;

            Log.e(MainActivity.TAG, "onClick: "+name.getClassName() );

            String str="com.example.threadpoolapp.MainActivity";

            Log.e(MainActivity.TAG, "onClick: "+(str.equals(name.getClassName())) );

        }

    }

    相关文章

      网友评论

          本文标题:onNewIntent的调用时机

          本文链接:https://www.haomeiwen.com/subject/clophctx.html