2011-08-12 5 views
0

私はアプリケーションを実行すると、必要なファイルをダウンロードしてすべて設定するなど、実行するプロセスが長くなるアプリケーションがあります。私はバックグラウンドにプロセスを移動し、プロセスが実行されている間、ステータスバーに通知を表示したいと思います。Androidはステータスバーから長いプロセスを実行します

ファイルをダウンロードしている間、プロセスを生き残らせておくことをお勧めします。私はサービスについて読んだが、簡単に殺されたと聞いたことがある?サービスを使用すべきか、またはスレッドを最大優先度で実行して、通知をスローして、プロセスが終了したときに閉じる必要がありますか?

ご協力いただきありがとうございます。プロセスは途中で約10分ですが、ROMマネージャーのROMをダウンロードするのに要する時間よりも、基本的には同じセットアップをお手伝いいただきありがとうございます。

答えて

0

フォアグラウンドサービスのように聞こえます。作成すると、ステータスバーに通知が表示され、実行中であることをユーザーに通知します。また、サービスはキャンセルされないように高い優先度が与えられます。フォアグラウンドフラグのドキュメントから

public final void startForeground (int id, Notification notification) 

Make this service run in the foreground, supplying the ongoing notification 
to be shown to the user while in this state. By default services are background, 
meaning that if the system needs to kill them to reclaim more memory (such as to 
display a large page in a web browser), they can be killed without too much harm. 
You can set this flag if killing your service would be disruptive to the user, 
such as if your service is performing background music playback, so the user 
would notice if their music stopped playing. 

あなたはドキュメントhereの残りの部分を見ることができます。

+0

お礼ありがとうございました。私はちょっと調べてみるつもりです – user577732

0

サービスはまさにあなたが望むものです。サービスを作成するときのサービスの優先度を指定できます(@ theisenpの投稿を参照)。

Activityをバックグラウンドに移動して後で再び開きます。サービスを開始してから、実際にfinish()メソッドを使用してアプリを停止することをおすすめします。その後、サービスが完了したら、インテントでアクティビティを再開するか、BroadcastReceiverで処理できるインテントをブロードキャストします。

関連する問題