1

iOS、Windows Phone、Android などのほとんどの主要なモバイル OS 向けのアプリケーションを開発しています。クライアントから、iOS と WP では簡単に実装できるが、Android では非常に難しいとのリクエストがありました。

iOS や WP では、アプリケーションのライフサイクルは、オブジェクトが好きUIApplicationApplication受け取るイベントを通じて制御されます。

iOS では、applicationDidEnterBackground:applicationWillEnterForeground:、などについて、 InactiveActiveBackgroundapplicationWillTerminate:などのアプリケーションの状態を明確に定義し、アプリの状態管理ロジックを非常に単純なものにします。

WP では、LaunchingDeactivatedActivatedClosingApplicationなどのよく理解されたイベントを受け取ります。これにより、アプリケーション全体のオブジェクト モデルを復元として保存するために、各アプリの状態で何をすべきかを論理的に決定することが非常に簡単になります。

onCreateしかし、Android では、アプリケーションの状態管理は、メソッドのオーバーライドなどのアクティビティの状態変更により、非常に困難に思えonRestartます。onDestroy私の問題は、ユーザー セッションの有効期限が切れたときにアプリケーション全体の状態を制御したい場合に発生し、ユーザーをサインイン アクティビティにリダイレクトして他の開いているアクティビティをシャットダウンしたい場合です。

finish()アクティビティのonCreate()onRestart()またはを呼び出すという事実についてはonResume()、 Android によって無視されます (ドキュメントによると) 。

ロジックをオーバーライドandroid.app.Applicationして配置しても、開いているアクティビティを制御できないようです。

iOS や WP に存在するような動作を生成することはできませんが、アクティビティ起動モード (SingleTaskおよび など)の可能なすべての組み合わせをほぼ試しました。SingleInstance

この質問に関連する別の投稿があり、私の問題をより明確にする可能性があります。

問題はまさに、「いずれにせよ Android で iOS または WP アプリケーションの動作を生成することは可能ですか?」ということです。</p>

4

2 に答える 2

2

基本的に、「セッション」の有効期限が切れると、ユーザーが何をしようとしても、ユーザーをログイン アクティビティにリダイレクトする必要があります。

セッションの有効期限が切れているかどうかを知らせる呼び出し可能なメソッドがあると仮定すると、 onResume() などでそのメソッドをチェックして、セッションの有効期限が切れている場合は、ユーザーをログイン アクティビティにリダイレクトしますか?

于 2012-08-17T14:56:54.513 に答える
0

あなたが興味を持っているかもしれないアプリケーションの状態についてここに答えがあります:

Android アプリケーションがバックグラウンドで実行されているかどうかを確認する

アプリケーションでは、onCreate を取得し、ここにいくつかのロジックを配置できます。そうですね、iOS ほど簡単ではありませんが、実行可能です。

単なるセッション状態の場合は、セッション状態をチェックし、そこからすべてのアクティビティを継承するベース アクティビティを作成します。

ログイン ページに移動する前に、Android SDK を使用してすべてのアクティビティを閉じるか、[戻る] ボタンをロックすることができます。

于 2012-08-17T15:15:21.450 に答える