2013-01-23 204 views
3

我知道这已经被问早前here & here too。他们不能正确回答(或没有回答的话)。但是,我不知道为什么总是moveTaskToBack(true);我返回false。可有人告诉我为什么,如何解决这个问题?提前致谢。moveTaskToBack(真)返回false总是

public void onBackPressed() {  
    boolean r= moveTaskToBack(true); 
    //r is false !! using API LEVEL 8 
} 

注:从我打电话它的活动包括在tabActivity孩子Activity而且都没有,这是一个主要LAUNCHER activity.I不知道是否有差别。

编辑: ,因此应用程序一点儿也不去background.I想就像硬件HOME按下

+0

它为我工作。我也打电话给super.onBackPressed() –

+0

@Sweety你是从'MAIN'/'LAUNCHER'​​Activity调用它的吗? – Nezam

+0

@Sweety super.onBackPressed()退出应用程序,当你从最近的应用程序中再次选择它时,它会重新启动它。我正在API 8模拟器中测试它。 – Nezam

回答

8

它去的背景,我不知道为什么moveTaskToBack(true)是返回false给你。也许你的清单中有些奇怪的东西?无论如何,你可以做到这一点,而不是调出主屏幕:

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

然而,需要注意的this message

“你不能模拟上的Home键的新闻。” —罗马盖伊,Android框架工程师

我不知道怎么说我的推荐代码平方(这是我同一个线程罗马的声明中发现,似乎工作)。

+0

这是一个很好的通用方法。把这个放在我的baseActivity中。谢谢! – Grisgram

0

我走进类似的问题(包括在tabActivity子活动),当你在孩子的活动叫moveTaskToBack(真),这是行不通的,而它工作在父活动。你可以在孩子的活动叫moveTaskToBack(真)是这样的: ChildActivity.this.getParent().moveTaskToBack(true)

0

只要写:

@Override 
public void onBackPressed() { 
    moveTaskToBack(true); 
    // super.onBackPressed(); 
}