iOS、Windows Phone、Android などのほとんどの主要なモバイル OS 向けのアプリケーションを開発しています。クライアントから、iOS と WP では簡単に実装できるが、Android では非常に難しいとのリクエストがありました。
iOS や WP では、アプリケーションのライフサイクルは、オブジェクトが好きUIApplication
でApplication
受け取るイベントを通じて制御されます。
iOS では、applicationDidEnterBackground:
、applicationWillEnterForeground:
、などについて、 Inactive、Active、BackgroundapplicationWillTerminate:
などのアプリケーションの状態を明確に定義し、アプリの状態管理ロジックを非常に単純なものにします。
WP では、Launching、Deactivated、Activated、ClosingApplication
などのよく理解されたイベントを受け取ります。これにより、アプリケーション全体のオブジェクト モデルを復元として保存するために、各アプリの状態で何をすべきかを論理的に決定することが非常に簡単になります。
onCreate
しかし、Android では、アプリケーションの状態管理は、メソッドのオーバーライドなどのアクティビティの状態変更により、非常に困難に思えonRestart
ます。onDestroy
私の問題は、ユーザー セッションの有効期限が切れたときにアプリケーション全体の状態を制御したい場合に発生し、ユーザーをサインイン アクティビティにリダイレクトして他の開いているアクティビティをシャットダウンしたい場合です。
finish()
アクティビティのonCreate()
、onRestart()
またはを呼び出すという事実についてはonResume()
、 Android によって無視されます (ドキュメントによると) 。
ロジックをオーバーライドandroid.app.Application
して配置しても、開いているアクティビティを制御できないようです。
iOS や WP に存在するような動作を生成することはできませんが、アクティビティ起動モード (SingleTask
および など)の可能なすべての組み合わせをほぼ試しました。SingleInstance
この質問に関連する別の投稿があり、私の問題をより明確にする可能性があります。
問題はまさに、「いずれにせよ Android で iOS または WP アプリケーションの動作を生成することは可能ですか?」ということです。</p>