onRestart()でアニメーションを開始する適切な方法は何ですか?
質問
現在、私はこれをすべての活動で使用しています: ジェネラコディセタグプレ
それは「機能します」が、これが将来私を台無しにするかどうかはわかりません。それがまぐれによって機能するのか、それともこれがどのように行われるべきかはわかりません。次の方法で実行してみました: ジェネラコディセタグプレ
しかし、できません。すべてのアクティビティがメインアクティビティを拡張し、superで実行すると、メインアクティビティonRestart()を呼び出そうとしてクラッシュします。(メインもフェードインしたいので、そこでアニメーションを実行しています)
これを適切に処理し、無意識のうちにバグを引き起こさないようにするにはどうすればよいですか?
解決
ここでアクティビティライフサイクルを見てください: http://developer.android.com / reference / android / app / Activity.html
あなたがしていることは、実際には、アクティビティの再開時に自動的に発生することになっていることと重複しています。
メインアクティビティをどのように定義し、どのように拡張するかについて、設計上の問題が発生している可能性があります。提案があれば、すべてのアクティビティに共通するアクティビティがある場合は、それらを拡張可能な「親」アクティビティに入れてください。「メイン」アクティビティを定義する方法には、他のアクティビティには適さない詳細が含まれているようです。したがって、「親」アクティビティクラスを設定したら、それを拡張して「メイン」アクティビティを作成し、そこに「フェードイン」ロジックを配置します。
最終的には、悪影響を与えることなくsuper.onRestartを呼び出すことができるはずです。