0

私は多くのディスカッションスレッドを検索しようとしましたが、このことについて明確ではありません. 初めてなので半分も理解できていないので直接質問させていただきます。

私のアプリケーションでは、最後のボタン (分析の開始ボタン) がクリックされたときに、サービスを開始したいのですが、分析がサービス内で行われるまでに 2 ~ 3 分かかります。分析が完了したら、サービスを自動的に実行したいです。メイン アクティビティにある結果アクティビティ ページを開始します。

このタスクはどのように達成できますか? また、アプリケーションがバックグラウンドで実行され、一時停止時にアンドロイドによって自動的に閉じられないかどうかも知りたいですか?

ありがとう

4

1 に答える 1

1

Android サービスの定義は、UI がなくてもバックグラウンドで実行できることです。はい、可能です。ただし、サービス自体はバックグラウンドで自動的に実行されません (メイン スレッドで実行されます)。代わりに、あなたがやりたいことはおそらく次のようなものです:

  • 操作を開始するというインテントをリッスンするサービスを用意します。
  • ユーザーがボタンをクリックすると、インテントがそのサービスに送信されます。
  • サービスは新しいバックグラウンド スレッドを開始し、しばらく作業を行います。
  • 作業が完了すると、サービスは新しいアクティビティを開始します。(このような..)

ユーザーがアプリを使用していない場合に新しいアクティビティを開始することは、非常に悪い習慣と見なされることに注意してください。チャット アプリケーションを使用していて、ランダムなアプリが乗っ取り始めると恐ろしいことになります...代わりに、フラグをどこかに貼り付けてからonResume()、他のアクティビティのハンドラーで、タスクが終了したかどうかを確認し、ユーザーを他のアクティビティに送ります。

于 2012-06-11T12:46:45.050 に答える