3

私はアクティビティがあります。そのアクティビティには、内にFragmentが含まれています。フラグメントはファイル(ProgressDialog)をコピーする必要がありますが、ビジー状態のときに画面を回転すると、アクティビティが再開し、すべてが停止します。ローテーションの変更によるアクティビティの再開

私はAndroidManifestにandroid:configChanges="orientation|screenSize"を追加しようとしたが、その後、私のAdViewToolbarが回転変化にリロードしなくなりますので、それは文句を言わないのいずれかの解決策になる:

:前

以降:

(ツールバーとAdView高さの違いに注目してください?)

はどのようにして働いてToolbarAdViewで、生きている活動/フラグメントを保つことができますか?

おかげ

+0

2つのレイアウト(http:// stackoverflow)が必要な場合があります。com/questions/17945130/prevent-activity-restarting-when-orientation-changes – Tasos

+0

アプリをポートレート/ランドスケープにする。アプリは両方向を許可する必要がありますか?あなたが活動タグの下でマニフェストでこれを使うことができないならandroid:screenOrientation = "portrait" – DJphy

+0

@DJphy優れたユーザエクスペリエンスのためにアプリが回転できる必要があります。 –

答えて

1

ニーズはファイル

をコピーし

はほとんどの人が通常のAndroidについて実現するものActivityFragmentは、インターネットからのダウンロードのものとして、長時間実行される操作を実行する場所がないということですまたはファイルをコピーする。

ActivityFragmentは、警告なしで破棄、再作成できるUI要素です。

、このような問題に対処する正しい方法は、長時間実行される操作を実行するためのServiceを持つことです再び時に、ActivityまたはFragmentは、サービスを開始する必要がありますし、すぐに「バインド」ことに、通常のunbindを実行しbind回転。

あなたがサービスとの境界サービスについてはこちらを読むことができます:http://developer.android.com/guide/components/bound-services.html

活動した後

(またはその断片)Serviceにバインドされている、それはそれに戻ってそれをリスナーとしてセルフサービス・レポートを登録することができ、ステータス/操作の進捗。活動は、サービスから切断した場合、サービスはデバイスのステータスバーに通知を入れて、activity

を必要とせずに動作進捗状況についてユーザに通知保つためにコマンド startForegroundを使用することができ、その上に

私はその方法がもっと多くのコードを必要とし、もっと複雑であることを知っています。しかし、それは正しいのやり方です。

+0

答えをありがとう。私はこれを試して、それがうまくいくかどうか受け入れます。 –

+0

小さな質問が1つ。それを 'Fragment'や' Activity'と結びつける方が良いでしょうか? –

+0

違いはありません。進行状況バーを制御するものからバインドします。 – Budius

関連する問題