0

只是想知道我是否可以收集一些建設性意見。那麼,我正在爲每個標籤和相關的子活動開發一個帶有活動組的標籤式應用程序。其中一個活動處理文件下載 - 等待下載鏈接從服務器,一旦收到下載開始在後臺。完成後,文件(主要是PDF)在通用查看器中打開。這部分工作非常好。在後臺運行活動

現在,即將到來的應用程序的要求,我希望活動在後臺運行。當用戶在下載頁面中時,它會顯示一個包含必要消息的進度對話框。已決定切換到其他屏幕的用戶移動到其他屏幕。實際上,下載器活動應該在後臺運行。

一個典型的下載活動類的樣子:

public class DownloadActivity extends Activity { 
    public void onCreate(Bundle state) { //code here} 
    public void onPause() {//can anything be done here?} 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      //go back to previous screens to check other features 
      TabGroupActivity parentActivity = (TabGroupActivity)getParent(); 
      //onBackPressed()- current activity is killed and new one is created 
      parentActivity.onBackPressed(); 
      return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 
} 

我想修改上述活動,以幫助它工作的背景,而用戶播放與其他屏幕變通。

有什麼想法?

希望它不是很混亂!如果您不瞭解上述任何情況,請告訴我。

在此先感謝!

回答

1

Activity不能不應背景工作。對於Android中的後臺操作,您應該使用Service

有一篇關於Android processes and services的文章。

Service沒有UI,它應該做的所有工作,在後臺運行。 Activity可以向用戶顯示當前應用程序狀態,該狀態由Service更改/修改。例如,當Service完成他的工作時,它可以發送Notification。更多詳情,請參閱this指南。

+0

服務有UI嗎? – Renjith

+0

不,它不... – waqaslam

+0

所以如果我不能有活動,我怎麼能顯示用戶界面? – Renjith

0

你也可以繼承的AsyncTask(http://developer.android.com/reference/android/os/AsyncTask.html),通過它,你可以做一些工作在後臺,並通過處理程序張貼到當前活動。

+0

的AsyncTask可以被系統終止,如果用戶離開活動。對於長時間運行的後臺操作,應該使用服務。 – HitOdessit