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을 사용해야합니다.

안드로이드에 관한 기사가 있습니다 processes and services.

Service에는 UI가 없으므로 백그라운드에서 모든 작업을 수행해야합니다. Activity은 사용자에게 현재 응용 프로그램 상태를 표시 할 수 있으며 변경/수정 된 내용은 Service입니다. Service이 작업을 마치면 Notification을 보낼 수 있습니다. this 가이드에 더 자세한 내용.

+0

서비스에 UI가 있습니까? – Renjith

+0

아니요, 아니요 ... – waqaslam

+0

Activity를 가질 수 없다면 어떻게 사용자에게 UI를 보여줄 수 있습니까? – Renjith

0

AsyncTask (http://developer.android.com/reference/android/os/AsyncTask.html)의 하위 클래스를 사용하여 백그라운드에서 일부 작업을 수행하고 처리기를 통해 현재 활동에 게시 할 수 있습니다.

+0

AsyncTask가 시스템에 의해 종료 될 수 있습니다. 사용자가 활동을 떠난 경우. 장기 실행 백그라운드 작업의 경우 서비스를 사용해야합니다. – HitOdessit