2013-01-23 243 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(); 
}