Android 5.0 应用程序在后台运行,在后台执行startActivity后会强制把界面带到前台来

Rander.C 2015-08-12 04:49:56
情况是这样的:
1.我的app在后台执行并且注册了广播
2.接收到广播后会执行startActivity跳转到另外一个界面

现在有一个问题:
Android 5.0以下的手机在后台执行startActivity不会将界面显示出来。条件:此时有打开另一个应用
Android 5.0及以上的手机会强制将界面显示出来。不管是否打开另一个应用。

我现在想要其在Android 5.0以及以上的手机在后台运行的时候如果执行了startActivity也不要界面显示出来,请问有谁遇到过这种情况吗?
...全文
3757 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rander.C 2017-07-12
  • 打赏
  • 举报
回复
结论:这个是Android 5.0的新特性,应用无法修改,我是通过标志位来修改的。上面tyronewj的说的做法,有一种情况无法避免,这个我就不解释了。结贴
hollybiao 2017-03-31
  • 打赏
  • 举报
回复
可以在 onCreate 立即执行 moveTaskToBack 试试
tyronewj 2016-02-25
  • 打赏
  • 举报
回复
引用 8 楼 csm_qz 的回复:
引用 7 楼 qq_16342157 的回复:
楼主问题有解决吗?
这个android 5.0的新特性,除非你改rom不认这个问题甭想解决,我是用的标志为规避掉的这个问题
其实无需这样,只需要在跳转之前进行判断是否在前台,如果在前台,则跳转,否则将跳转工作在Activity的 onRestart方法中进行
Rander.C 2015-11-26
  • 打赏
  • 举报
回复
引用 7 楼 qq_16342157 的回复:
楼主问题有解决吗?
这个android 5.0的新特性,除非你改rom不认这个问题甭想解决,我是用的标志为规避掉的这个问题
vancecentw 2015-11-16
  • 打赏
  • 举报
回复
楼主问题有解决吗?
Rander.C 2015-08-14
  • 打赏
  • 举报
回复
引用 5 楼 lhz1098525079 的回复:
[quote=引用 4 楼 csm_qz 的回复:] [quote=引用 2 楼 lhz1098525079 的回复:] 你可以索性无论任何版本都暂时不跳转,在Service中做好标记,待程序重新获得焦点在执行跳转
请问怎么判断一个应用程序获得焦点?是不是要监听整个应用程序获取焦点的广播?[/quote] Activity的生命周期啊,当失去焦点是向service发送消息,获得焦点是再想service询问是否需要跳转,看你说的你是是调用了其他程序的Activity吧[/quote] 恩是的,我是调用了其他应用程序的Activty登陆系统账号,系统账号注册完成以后收到注册成功的回调,然后通过startActivity去引导用户去设置手势密码,但是有一种情况是第三方应用调用我们的app去购买商品,而我们的app要登陆系统账号才可购买,此时去系统页面登陆账号成功也会收到广播,此时会执行startActivity,但是android5.0以前就直接在后台运行,android 5.0以后会将界面带到前台来。
Rander.C 2015-08-13
  • 打赏
  • 举报
回复
引用 1 楼 sagittarius1988 的回复:
在你startActivity之前,判断下当前系统的版本,和程序是否在后台运行,再决定是否执行startActivity
因为情况比较特殊,如果程序在后台运行就让他不显示出来,如果程序在前台运行还是要正常显示出来,但是特殊情况是,我是从另外一个app跳转回来的时候收到的广播,然后这个时候再去做判断,刚好在这么一个临界点做的判断的是否在后台运行的判断,这个时候判断偶然出现判断错误,有时候判断本app在前台,有时候判断成上一个在前台。
光灬翼 2015-08-13
  • 打赏
  • 举报
回复
你可以索性无论任何版本都暂时不跳转,在Service中做好标记,待程序重新获得焦点在执行跳转
sagittarius1988 2015-08-13
  • 打赏
  • 举报
回复
在你startActivity之前,判断下当前系统的版本,和程序是否在后台运行,再决定是否执行startActivity
光灬翼 2015-08-13
  • 打赏
  • 举报
回复
引用 4 楼 csm_qz 的回复:
[quote=引用 2 楼 lhz1098525079 的回复:] 你可以索性无论任何版本都暂时不跳转,在Service中做好标记,待程序重新获得焦点在执行跳转
请问怎么判断一个应用程序获得焦点?是不是要监听整个应用程序获取焦点的广播?[/quote] Activity的生命周期啊,当失去焦点是向service发送消息,获得焦点是再想service询问是否需要跳转,看你说的你是是调用了其他程序的Activity吧
Rander.C 2015-08-13
  • 打赏
  • 举报
回复
引用 2 楼 lhz1098525079 的回复:
你可以索性无论任何版本都暂时不跳转,在Service中做好标记,待程序重新获得焦点在执行跳转
请问怎么判断一个应用程序获得焦点?是不是要监听整个应用程序获取焦点的广播?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧