如何通过编程方式最小化/隐藏应用程序?

11
我有一个完全透明的活动(用户无法看到其打开时的状态)。我想要从后台服务中打开此活动,并在完成一些工作后关闭该活动(不使用finish())。我想要隐藏或最小化应用程序。实际上,我的应用程序会在打开后执行someWork一秒钟,然后继续在后台进行一些上传处理(即在onPause 中)。我不希望用户知道某些东西立即打开并关闭。
目前,我正在使用以下代码-
public void minimizeApp() {
 Intent startMain = new Intent(Intent.ACTION_MAIN);
 startMain.addCategory(Intent.CATEGORY_HOME);
 startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(startMain);
}

现在的问题是,如果用户正在使用其他应用程序,例如玩游戏或使用 WhatsApp,当我的应用程序在前一个应用程序(游戏或 WhatsApp)上打开并调用minimizeApp()时,它会最小化我的应用程序以及后台中打开的其他应用程序。 我只想最小化我的应用程序。


只是好奇,为什么需要一个活动来完成一些工作?Service不够好吗? - Sangharsh
@Sangharsh,有时候服务无法完成我们需要的所有工作。有些任务只能从“activity”类中完成。在我的情况下,我在透明活动中默默地完成了每个任务,以便用户看不到正在发生什么。这有点像间谍应用程序。 - karanatwal.github.io
你能尝试一下这个链接中提供的解决方案吗?https://dev59.com/sWkv5IYBdhLWcg3wpCMz - rohitanand
1个回答

34

您可以尝试以下操作,从您希望最小化应用程序的活动/上下文中进行:

YourActivity.this.moveTaskToBack(true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接