2011-03-13 63 views
0

我已創建了一個應用程序包含 最大的進度條limit.if我按下啓動開始我的進度條,進度條在後臺啓動,並在唯一的應用程序得到的消息框。但是,如果我按BACK按鈕,然後我的應用程序得到停止.. 我希望我的應用程序在後臺運行,但我按下BACK按鈕..所以請告訴我如何實現這一點..如果想要我的應用程序的代碼,然後讓我知道.. 。應用是停止,如果我按下後退按鈕在Android中

回答

0

試試這個

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if(keyCode==KeyEvent.KEYCODE_BACK){ 
       moveTaskToBack(true); 
      } 
      return super.onKeyDown(keyCode, event); 
} 
+0

它不工作.......你能告訴我如何實現.... – Danny 2011-03-13 05:47:07

0

您可以使用服務的概念作爲一種解決方案在後臺運行它。

+0

@nikki ok..thanks .....你可以請給它一些樣本.. ..? – Danny 2011-03-13 07:40:40

+0

瀏覽本網站.http://marakana.com/forums/android/examples/60.html這是一個很好的例子,有助於演示服務。 – Niki 2011-03-13 08:15:28

+0

接受任何的答案是VL讓別人回答問題烏爾的 – Niki 2011-03-13 12:36:37

1

您也需要在按下後退按鈕來保存你的Android應用程序的狀態。 (將所有應用程序數據保存在onPause中,並在應用程序再次啓動時重新使用它),或者在Android關閉應用程序時使用Service以保持其在後臺運行。

東西更方便的是IntentService如果您的服務就像是一個單一的任務(例如文件上傳或下載)。任務結束後,IntentService將自動完成。

此外,還要確保你沒有做任何操作的UI線程。如果線程被阻止的時間超過一定時間,那麼Android會認爲您的應用程序無響應,並會強制用戶關閉應用程序。使用AsyncTask將所有長時間運行的操作移至另一個線程。

+0

感謝先生....請幫我這個樣子.....因爲我是新來的Android應用程序。發展 – Danny 2011-03-13 07:41:47

+0

沒問題丹尼。很多人在這裏幫助你。如果您發現它們有幫助,請確保接受他們的答案。 :) – Abhinav 2011-03-13 10:34:35

0

@rohit如果Android版本低於7 onBackPressed()還沒有實現。然後使用下面的代碼片段,它應該工作。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 
@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 

    doSomething(); 
    return; 
} 
相關問題