以编程方式将正在运行的应用程序发送到后台

时间:2011-02-09 11:59:52

标签: android

是否可以在android中以编程方式将活动发送到后台?

我正在创建一个恶作剧应用程序,在指定时间后播放有趣的声音(由用户输入)。我不希望播放该声音时应用程序可见,并且显示屏应该是黑暗的。

4 个答案:

答案 0 :(得分:20)

您可以使用:

boolean sentAppToBackground = moveTaskToBack(true);

if(!sentAppToBackground){
  Intent i = new Intent();
  i.setAction(Intent.ACTION_MAIN);
  i.addCategory(Intent.CATEGORY_HOME);
  this.startActivity(i);
}

此处提供更多信息:http://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean)

或者简单地说:

Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);

根据Android框架工程师Romain Guy的说法,“你无法模拟Home键上的按键。”所以要小心......

检查:http://osdir.com/ml/Android-Developers/2010-03/msg01887.html

根据以下内容更新了此答案:moveTaskToBack(true) returns false always

答案 1 :(得分:5)

此功能最终适合您

moveTaskToBack(true)

或者下载源代码。 Android minimize app programmatically

答案 2 :(得分:2)

也许从服务中播放声音?

答案 3 :(得分:1)

要扩展@ ns476的答案,你应该从服务中播放它的原因是操作系统可以随时杀死不再在前台的任何Activity。请查看activity lifecycle