2011-11-28 12 views
1

私のアクティビティから、インテントを開始して(写真をアップロードして)結果(onActivityResult)を待つ。アクティビティを非表示にする

アクティビティを非表示にして、インテントの結果をバックグラウンドで処理できるようにするにはどうすればよいですか? moveTaskToBack(true)はアプリケーション全体を非表示にしますが、現在のアクティビティを終了することなく直前のActivityに戻る必要があります。

答えて

3

アンドロイドドキュメントアクティビティがユーザにインターフェイスを表示するためのもので、説明したように:

活性は、ユーザインタフェースを単一画面を表します。たとえば、電子メールアプリケーションには、新しい電子メールのリスト、電子メールを作成する別のアクティビティ、電子メールを読むための別のアクティビティが表示されます。これらの活動は、電子メールアプリケーションで一貫したユーザーエクスペリエンスを形成するために協力していますが、それぞれが他のメンバーとは独立しています。そのため、異なるアプリケーションがこれらのアクティビティのいずれかを開始できます(電子メールアプリケーションで許可されている場合)。たとえば、カメラアプリケーションは、ユーザーが画像を共有するために、新しいメールを作成する電子メールアプリケーションでアクティビティを開始できます。

私は読むことwhole the articleをお勧めします。

バックグラウンドで何かしたい場合は、ThreadAsyncTask、さらにはServiceを使用できます。このドキュメントの多くを読むと、これらの種類のものをAndroidでどのように処理するべきかについての詳細が得られます。

1

理想的にはAsyncTaskをここで使用します。これにより、メインのUIスレッドからのアップロードを分離し、アプリケーションが「応答しない」ことを防ぐことができます。

もう1つの解決策は、新しいServiceを作成することです。これはドキュメントが推奨するものではありません。

1

私は、短い答えはで、だと思います。あなたは斜めにすることができますが、おそらくそれは良いインタフェース設計ではありません。ほとんどの場合、アクティビティが低いときに何かをやっているときに、アクティビティが突然バックグラウンドからポップアップすると、ユーザーは幸せにならないでしょう。

もっと正確に、何を使用したいかを指定します。おそらく別の方法があります。

0

活性にビューまたは要素の場合は、マニフェストのような透明なアクティビティを設定してみてくださいを持つことができます。

アンドロイド:テーマは=「@アンドロイド:スタイル/ Theme.Translucent」

関連する問題