美文网首页
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