[Android]SingTask 与 onNewIntent
2015-03-20 21:15
127 查看
在开发中经常会遇到这种情况,比如在主页面进入子功能页面,一步一步很多层,然后子功能完成,要退回主页面,这时候我们应该怎么处理?
其实合理运用Android的lunchMode就可以解决:
假设主页面是MainActivity, 子功能页面SubActivity1,SubActivity2…..
设置MainActivity 的
SubActivity? 调用startActivity()启动MainActivity后,有这几种情况:
如果调用startActivity的SubActivity?与MainActivity在同一个task里,则移除MainActivity顶部所有activitys,不调用MainActivity的oncreate(因为它本身已经存在,只不过是推到栈顶),但会调用onNewIntent(Intent newIntent);
如果调用startActivity的SubActivity?与MainActivity在不同task里,则将MainActivity的栈整体移至启动task的栈顶,并如
如果MainActivity不存在,则启动MainActivity,同Activity正常创建生命周期。
OnNewIntent(Intent newIntent)注意事项;
在该方法中只是会传入一个intent,但是activity的Intent并不会被设置,所以要
其实合理运用Android的lunchMode就可以解决:
假设主页面是MainActivity, 子功能页面SubActivity1,SubActivity2…..
设置MainActivity 的
lunchMode=singTask(故名思意,就是让这个activity只存在与唯一一个task里)
SubActivity? 调用startActivity()启动MainActivity后,有这几种情况:
如果调用startActivity的SubActivity?与MainActivity在同一个task里,则移除MainActivity顶部所有activitys,不调用MainActivity的oncreate(因为它本身已经存在,只不过是推到栈顶),但会调用onNewIntent(Intent newIntent);
如果调用startActivity的SubActivity?与MainActivity在不同task里,则将MainActivity的栈整体移至启动task的栈顶,并如
1.一样,移除MainActivity顶部activitys,调用onNewIntent(Intent newIntent);
如果MainActivity不存在,则启动MainActivity,同Activity正常创建生命周期。
OnNewIntent(Intent newIntent)注意事项;
在该方法中只是会传入一个intent,但是activity的Intent并不会被设置,所以要
setIntent(intent)后才能在Activity中获得需要的Intent;
相关文章推荐
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android onNewIntent
- Android:onNewIntent()
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android的onNewIntent
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android onNewIntent
- Android 关于onNewIntent的方法调用
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法)
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android onNewIntent
- [Android] 以singleInstance模式加载的Activity怎么接收以Bundle方式传递过来的参数 By onNewIntent() but not onResum
- android onNewIntent 说明
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android onNewIntent