【问题标题】:Bring application to background and then to foreground将应用程序置于后台,然后置于前台
【发布时间】:2013-03-18 16:03:47
【问题描述】:

我应该使用什么方法将我的应用程序移至后台,然后再次将其移至前台? 我尝试使用 moveTaskToBack(true) 并且活动已成功移至后台,但随后我无法将其移至前台。 我尝试使用 startActivity() 再次启动活动,但没有成功,似乎没有方法 moveTaskToFront() 或类似的东西。

【问题讨论】:

    标签: android android-activity activity-lifecycle


    【解决方案1】:

    使用moveTaskToBack() 将您的应用移至后台。

    要将其移至前台,请使用以下代码:

    Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());
    startActivity(intent);
    

    如果您尝试通过ServiceBroadcastReceiver 执行此操作,那么您需要在调用startActivity() 之前执行此操作:

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    

    【讨论】:

    • 按下Home按钮后,需要5秒才能将应用程序带回前台。如何让它快速和实时?
    • @frozenade 您可能应该打开一个新问题,因为这仅与我的回答无关。此外,如果您试图在用户将应用置于后台时将其强制置于前台,我会想象 Android 会增加延迟以防止流氓应用打扰用户。如果我有一个应用程序可以做到这一点,我会把我的手机扔出窗外。
    • 不,先生。我根本不想打扰任何用户。我想制作一个限制常用按钮功能的信息亭考试浏览器。
    【解决方案2】:

    感谢它通过添加以下意图对我有用

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多