0

アクティビティ 1、アクティビティ 2 の 2 つのアクティビティがあるとします。アクティビティ 1 からアクティビティ 2 を開始します。アクティビティ 2 は、サービスで開始されたバックグラウンド タスクの実行の進行状況を表示する画像と進行状況バーを含むアクティビティです。

アクティビティ 2 からハードウェアの [戻る] ボタンを押そうとすると、アクティビティ 1 に戻るので、サービスがまだ実行されていてもアクティビティ 2 を再開できます。

質問は次のとおりです。どうすればそのような行動を防ぐことができますか。アクティビティ 2 を 1 回だけ開始し、作業が終了していない間は終了しないようにする必要がありますか?? もう 1 つのケースは、タスク マネージャーからアプリケーションを停止できますが、サービスは動作し、その後アプリケーションを再度実行できます。そのような行動を防ぐためにどのようなメカニズムがありますか? ありがとう。

ここに画像の説明を入力

4

1 に答える 1

1

Activity起動時に、クラスからローカル サービスにバインドできます。バインドActivityされると、そのサービスによって宣言されたパブリック メソッドを呼び出すことができます。これによりActivity、サービスにバインドできるようになり、サービスが現在何らかの作業を行っているかどうかを確認できます。のようなメソッドを作成することもできますisRunning()。サービスが現在何の作業も行っていない場合は、新しいジョブを開始することをお勧めします。すでに何らかのタスクを実行している場合は、そのタスクの現在の進行状況を表示できます。

これを行う方法については、Android デベロッパー サイトのLocal Service Sampleの記事を参照してください。

于 2012-11-26T01:39:41.563 に答える