Android将后台应用唤起到前台的方法
2016-01-21 16:06
1351 查看
Android将后台应用唤起到前台的方法 应用场景 推送
击通知栏,进入对应页面
1 应用在前台,点击通知,直接执行跳转操作;
2 应用在后台,将后台进程唤起到前台,执行跳转操作;
3 应用没有启动,启动应用,执行跳转操作;
4 应用在后台被回收,恢复应用,然执行跳转操作。
目前以下几种方式能够实现上述效果:
1 通过设置Intent的flag,代码如下:
2 通过ActivityManager获取RunningTasks,如果存在该应用对应的task,则通过
ActivityManager的moveTaskToFront(rti.id, ActivityManager.MOVE_TASK_WITH_HOME);方法将应用唤起到前台,
然后处理相关操作;如果没有相关的task,则直接启动应用即可;
此方法存在的问题是,如果结合Notification使用时,用户点击Notification的时机是不确定的,只能通过广播处理,会比较麻烦;
3 将应用中的MainActivity设置为singleTask,这样点击通知时,如果Activity存在,则会将应用唤起到前台,如果不存在则会创建
新的Activity,
此方法存在的问题是,从Notification跳转,会直接显示MainActivity,跳过launch页,另外,如果MainActivity设置为singleTask之后
再次跳转到MainActivity,那么MainActivity之上已经存在的Activity会被清空,这样用户的操作行为会丢失
击通知栏,进入对应页面
1 应用在前台,点击通知,直接执行跳转操作;
2 应用在后台,将后台进程唤起到前台,执行跳转操作;
3 应用没有启动,启动应用,执行跳转操作;
4 应用在后台被回收,恢复应用,然执行跳转操作。
目前以下几种方式能够实现上述效果:
1 通过设置Intent的flag,代码如下:
Intent intent = new Intent(this, MainActivity.class); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setAction(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
2 通过ActivityManager获取RunningTasks,如果存在该应用对应的task,则通过
ActivityManager的moveTaskToFront(rti.id, ActivityManager.MOVE_TASK_WITH_HOME);方法将应用唤起到前台,
然后处理相关操作;如果没有相关的task,则直接启动应用即可;
此方法存在的问题是,如果结合Notification使用时,用户点击Notification的时机是不确定的,只能通过广播处理,会比较麻烦;
3 将应用中的MainActivity设置为singleTask,这样点击通知时,如果Activity存在,则会将应用唤起到前台,如果不存在则会创建
新的Activity,
此方法存在的问题是,从Notification跳转,会直接显示MainActivity,跳过launch页,另外,如果MainActivity设置为singleTask之后
再次跳转到MainActivity,那么MainActivity之上已经存在的Activity会被清空,这样用户的操作行为会丢失
相关文章推荐
- [Android] 更好的解决 "返回键或取消时自动回调DatePickerDialog的方法onDateSet()" 的问题
- Android 动态显示隐藏EditText 输入框内容
- Android5.X (六) : RecycleView
- android开发问题汇总
- 31.Android之常用单位px、dip、sp学习
- android之屏幕适配之一理论知识
- Android之Toolbar的使用
- Android开发之Intent.Action
- 走向Android5.0之toolbar,Snackbar
- android 录制短音频
- Android 获取系统联系人并排序
- Android学习历程7-Activity详解
- android代码集锦
- AndroidManifest.xml配置文件详解
- Android Studio 图片资源引用杂谈
- Android小问题:android studio怎么查看数字签名 sha1(地图)
- Cordova / PhoneGap开发入门,基于HTML、CSS和JavaScript的Android移动开发框架
- android技巧(五)一个异步+接口回调的例子
- Android数据存储
- Android working with Google Maps V2