4

ユーザーがアプリケーションのボタンをクリックすると、作業中のドキュメントの一部のデータが変更され、その時点でアクティビティに UI を再構築する必要があります。特定の変更に対して正確にどのビューを更新する必要があるかを事前に知るのは難しいため、可能であればこの方法で行いたいと考えています。

を取得して、アクティビティを呼び出してから、同じ意図でintent呼び出してみました。このメソッドを使用すると、保留中の遷移をすべて無効にできるので、アクティビティの新しいインスタンスを作成するため、その状態を回復できないことを除けば問題ありません (設定に保存するなど、本当にばかげたことをしない限り)。アクティビティには、何かを更新するたびにこのメソッドを使用してページ 0 に戻るViewPagerが含まれているため、これは受け入れられません。finish()StartActivity

次に使ってみActivity.Recreate()ました。これにより、アクティビティの同じインスタンスのように見えるため、状態が保存されないという問題が解決されます。しかし、この場合、すべてのアニメーションを無効にする方法がわからないため、常に画面にフラッシュが表示されます。

an activity.recreate()ユーザーに通話をシームレスに見せる方法はありますか? それとももっと良い方法がありますか?これはすべてviewpager内にあるため、フラグメントを更新しても同様に機能しますが、これはフラグメント クラス自体からではなく、それぞれが UI の一部を提供する多くのオブジェクトから発生します。

4

1 に答える 1

2

同様の問題に直面しrecreateました。点滅しているアクティビティを呼び出したときに、以下のコードを使用することになりました。

// uncomment below line for blink effect :P
// recreate();
// restart activity without blinking :-)
Intent intent = new Intent(MyActivity.this, MyActivity.class);
startActivity(intent); // start same activity
finish(); // destroy older activity
overridePendingTransition(0, 0); // this is important for seamless transition

あなたの質問に答えるには遅すぎることはわかっていますが、同じ問題に直面している他の開発者に役立つことを願っています.

于 2016-11-20T17:21:48.730 に答える