是否可以在android中以编程方式将活动发送到后台?
我正在创建一个恶作剧应用程序,在指定时间后播放有趣的声音(由用户输入)。我不希望播放该声音时应用程序可见,并且显示屏应该是黑暗的。
答案 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)
答案 2 :(得分:2)
也许从服务中播放声音?
答案 3 :(得分:1)
要扩展@ ns476的答案,你应该从服务中播放它的原因是操作系统可以随时杀死不再在前台的任何Activity
。请查看activity lifecycle。