我正在为我的媒体播放器更换锁屏,我在一个方面遇到了麻烦。
锁定屏幕本身是一个新活动,只要屏幕关闭,我的媒体服务就会启动它。问题是Activity使用应用程序上下文来启动,这会导致它在用户解锁后将应用程序带到前面。
我尝试使用服务Context启动活动,但我认为这不起作用,因为服务本身已链接到应用程序。
以下是启动活动的服务中的代码:
Intent mLock = new Intent(context, LockScreen.class);
mLock.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(mLock);
有没有人对我如何启动此活动并将我的应用程序保留在后台有任何建议?
答案 0 :(得分:3)
在清单中设置锁定屏幕的任务亲和力。这应该排除你而不使用FLAG_ACTIVITY_MULTIPLE_TASK。
答案 1 :(得分:2)
经过大量搜索后,我可以通过添加FLAG_ACTIVITY_MULTIPLE_TASK
来获得我想要的结果。这允许锁定活动开始和结束,而无需将父应用程序放在前面。
我将继续测试此解决方案并发布我发现的任何缺点。如果有其他人愿意接受这种感觉......我知道这面旗帜过去曾引起批评。
谢谢, 约什
答案 2 :(得分:0)
我对你的问题有点不清楚。但我希望我做对了。
如果您想要激活锁定活动并且在解锁时您不希望在调用锁定活动之前看到正在运行的活动(比如活动X),那么在调用之前关闭此活动(X)锁定活动。
如果您希望X在锁定活动处于活动状态时运行,但在解锁时关闭,则使用标志。一旦解锁就设置一个标志,并允许X定期检查这个标志状态。
希望我能帮到你。