2011-06-28 10 views
0

状況によっては、アプリケーションのスタック内にあるすべてのアクティビティーを分解して、構成の変更のためにすべて再作成できる必要があります。私は最初に各アクティビティのfinishを呼び出し、スタックを再作成することでこれを達成しました。Androidのアクティビティーを破棄する再構築

再作成するには、私は自分のルートの活動を挙げます。そして、その中で私は第二の活動を創り出しました。私の2番目の活動の中で私は3番目の活動を作り始めました。これは動作しますが、私が抱えている問題は、画面を見ているときに、3つのアクティビティのそれぞれが作成され、次のアクティビティにアニメーション化されることです。私はこれをユーザーに見えないように再構築し、これらの移行を隠したいと思っています。誰もこれを達成する方法を知っていますか?

答えて

1

設定が変更されても、Androidは既にアクティビティを再開しています。

現在表示されていない場合でも、すべてのアクティビティを再開したいとしている場合(Androidはユーザーが返品して表示されるとゆっくりとこれを行います。ポイント)、いいえ、これを行う簡単な方法はありません。私はあなたの行動を再開するためにプラットフォームを取得するために、それを目に見えるようにする必要があり、その後あなたはwazooのちらつきを持つつもりであるため、醜く醜いものにならないものを考え出すことはできません。

これらのことは、そのように機能するようには意図されていません。これは、Android上で実行する他のアプリケーションがどれほど動作するかではないため、あなたがそれをする必要があると深く感心した場合、その理由を説明すると便利ですあなたが欲しいもの。 :)例えば、あなたが状態を根本的に結びつけて、これを必要とする活動がたくさんある場合は、代わりにフラグメントを使うことを検討してください。

一方、構成の内部概念を持っていて、アクティビティを再開する(たとえばテーマを切り替えるなど)場合は、このためのAPIがありますが、 Android 3.0:http://developer.android.com/reference/android/app/Activity.html#recreate()

+0

こんにちは、ありがとうございました。私が構成の変更を言うとき、私はAndroidの構成の変更を意味しません。ユーザーがティアダウンが必要なアプリケーションの設定を変更して再構築することを意味します。 2つの異なる設定では、メイン画面、設定画面などの画面は同じですが、設定に基づいてコンテンツが大幅に変更されます。この変更を容易にするために、私は自分のアクティビティを作るために工場を使います。設定が変更されたら、工場を交換し、新しい工場を使用して既存のすべての画面を再作成します。 –

+0

@metalideath: "この変更を容易にするために、私は自分のアクティビティを作るために工場を利用します。"あなたがアンドロイドで何らかの活動を「行い」ていないと考えると、あなたはこれを誤って表現していると思います。 "新しい工場を使用して既存のすべての画面を再作成する" - バックスタックを失うことがあれば、 'Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP'を 'Intent'で' startActivity() 'と置き換えて、他のすべてのアクティビティを削除し、次に使用するときに再構築します。それ以外の場合は、静的なデータメンバーなどを使用して、onResume()でアクティビティーを再作成する必要があります。 – CommonsWare

関連する問題