0

建設的なコメントを集めることができるかどうか疑問に思っています。さて、各タブのアクティビティ グループと関連する子アクティビティを含むタブ付きアプリケーションを開発しています。アクティビティの 1 つはファイル ダウンローダを処理します。サーバーからのダウンロード リンクを待機し、受信したダウンロードがバックグラウンドで開始されます。完了すると、ファイル (ほとんどが 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);
    }
 }

ユーザーが他の画面で遊んでいる間、バックグラウンドで動作するように上記のアクティビティを変更したいと思います。

何かご意見は?

あまり混乱しないことを願っています!上記のいずれかを理解していない場合はお知らせください。

前もって感謝します!

4

2 に答える 2

1

Activity バックグラウンドで動作することはできませんし、動作するべきではありません。Android でのバックグラウンド操作には、Serviceを使用する必要があります。

Android のプロセスとサービスに関する記事があります。

Serviceには UI がありません。バックグラウンドですべての作業を行う必要があります。Activityによって変更/修正された現在のアプリケーションの状態をユーザーに表示できますServiceService彼の仕事が終わったらNotification、たとえば、. 詳細については、このガイドを参照してください。

于 2012-10-10T13:25:04.917 に答える
0

AsyncTask(http://developer.android.com/reference/android/os/AsyncTask.html)をサブクラス化して、バックグラウンドで作業を行い、ハンドラーを介して現在のアクティビティに投稿することができます。

于 2012-10-10T13:30:55.613 に答える