0

私のアプリでは、数分かかる可能性のあるいくつかのファイルをアップロードしています。カスタムタイトルバーにプログレスバーを追加することで、受動的に進行しているアクティビティについてユーザーに通知する方法を考えています。私がやりたいのは、カスタムタイトルを使用するすべてのアクティビティを、スレッドが終了するまで進行状況バーとともに表示し、進行状況バーを非表示にするコールバックを実行することです。このようなことを達成できますか?

これを不可能にしているように見えるのは、ユーザーがビューがロードされたアクティビティにいる場合、スレッド終了コールバックはロードされたビューリソースを操作して、実行可能ではないように見える進行バーを無効にする必要があるということです。バックグラウンドで何かが起こっていることのグローバルで受動的な兆候を維持するために、これまたは代替の解決策を達成するための提案はありますか?

4

1 に答える 1

1

これを実現するためにサービスを使用できます。サービス

基本的にどのように機能するかは、アクティビティを作成するときに各アクティビティでサービスにバインドすることです。このサービスを使用して、アップロード方法を開始します。

サービスにバインドするときにハンドラーを渡します。このハンドラーは、その特定のアクティビティで UI を更新するために使用されます。サービスが UI に直接影響を与えることはありません (別のスレッドで実行されます) 代わりに、ハンドラーは、アップロードの進行状況などのバンドル内のデータや、完了したことを示す bool を含むメッセージを UI スレッドに返します。

于 2012-04-25T09:23:25.753 に答える