在不将应用程序置于最前面的情况下开始活动

Jos*_*osh 5 service android android-context

我正在为媒体播放器更换锁定屏幕,但我在一个方面遇到了麻烦。

锁定屏幕本身是一项新活动,每当屏幕关闭时,我的媒体服务就会启动该锁定活动。问题在于,Activity使用应用程序上下文来启动,这导致它在用户解锁后将应用程序带到最前面。

我尝试使用服务上下文来启动活动,但是我认为这不起作用,因为服务本身已链接到应用程序。

以下是启动活动的服务中的代码:

Intent mLock = new Intent(context, LockScreen.class); 
     mLock.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(mLock);
Run Code Online (Sandbox Code Playgroud)

是否有人对我如何启动此活动并使我的应用程序保持在后台有任何建议?

Jos*_*osh 3

经过大量搜索后,我通过添加FLAG_ACTIVITY_MULTIPLE_TASK. 这允许锁定活动开始和结束,而无需将父应用程序带到前面。

我将继续测试这个解决方案并发布我发现的任何缺点。如果其他人想对此发表意见,请随意……我知道这面旗帜过去曾引起过批评。

谢谢,乔什

  • 乔什,我知道这是一篇有点旧的文章......但是您介意分享让您工作的最终代码吗?您是否在没有应用程序上下文的情况下开始活动?或者是 FLAG_ACTIVITY_MULTIPLE_TASK|FLAG_ACTIVITY_NEW_TASK? (4认同)