前几天面试被问到onNewIntent ,我竟哑口无言 完全没听过这个东西,所以总结经验教训,多学习吧。
一个简单的例子说明:
activityA 启动activityB 并通过intent传递了一些数据,后activityC也需要启动activityB也要传递一些数据,那么这时候就要思考一个问题,如果我们activity的启动模式是standard,那么好说,每次启动activityB的时候都需要重新创建,C给B的数据能够如期而至。但是如果我们的启动模式为singleTop、singleTask、singleInstance。A启动B ,B在栈中,C想要启动B,B并不会重新创建,onCreate方法并不会走,那么从C得到的数据就是不准确的。这时候就可以用到onNewIntent,创建B的时候会走onCreate 但是不会走OnNewIntent,我们可以在onCreate里面get一次数据 C传给B的数据我们就需要在onNewIntent方法中get一次数据,这样就可以确保万无一失的得到的数据是准确的。
注意:在OnNewIntent方法中需要setIntent(intent),才能正确得到数据。