2017-09-13 7 views
0

このトピックについてのSOに関するすべての質問を読んだ後、私は非常に迷惑をかけます。クラッシュ後にAndroidを再起動する動作の動作を変更する方法はありますか

クラッシュが発生します。誰も完璧なコードを書いていません。また、特定の論理階層を必要とするアプリもあります。最も良い例は、ログイン画面のアイデアです。あなたがサーバー上で何かをしていて、アプリがクラッシュするようなアクティビティがあります。再起動後、アプリはすべてのログインセッションデータを失い、保存するのが最も安全な方法ではないかもしれません。したがって、クラッシュ後にユーザーにログイン画面を提示することは、行うのが最善で最も論理的なことです。最高のユーザーエクスペリエンス。

Androidはアクティビティスタックを覚えていますが、その下にある「空の」アプリケーションを使用して最後の作業アクティビティを再起動することにします。 私が見る唯一の実行可能なオプションは、ログイン状態が利用可能であるかどうかにかかわらず、すべての単一アクティビティをチェックインすることです。そうでない場合は、クリアトップまたはクリアタスクでログイン(ランチャー)アクティビティを開始します。しかし、これにより、この動作が実装されている基底クラスextends Activityを作成し、すべてのアクティビティでそれを拡張する必要があります。しかし、何らかの理由で他のタイプのアクティビティを拡張する必要があるため、拡張できない場合はどうなりますか?

android:clearTaskOnLaunchがありますが、これはユーザーがホームボタンから終了して返されるたびに発生します。ユーザーがホームボタンを押すたびにアクティビティを終了したアンタゴニストfinishOnTaskLaunchがあります。そのため、Androidデベロッパーは、終了後にアプリが特定の状態に表示されることがありますが、クラッシュがすべてのアプリに排他的であるように見えることがあることを認識しています。

カスタムを使用すると、クラッシュ後に動作する機会が与えられますが、アプリの状態は回復できないため、Android独自の動作に加えて特定のタスクしか実行できません。

私の簡単な質問は、Androidに組み込まれている方法があれば、実行中のバージョンに依存しない自然な方法でAndroidのクラッシュ後の動作を変更できることですある程度のc)、いくらか滑らかなユーザーエクスペリエンスをもたらすでしょう。

答えて

0

私は適切な親または上のナビゲーションスタックを提供することを望む結果を得る正しい方法を言うでしょう。詳細はhttps://developer.android.com/training/implementing-navigation/ancestral.htmlで読むことができます。

しかし、その要点は、適切なバックナビゲーションを提供するために親の活動のアイデアを使用することです。アクティビティが既に存在する場合はそれだけに戻ります(クラッシュシナリオなど)、ユーザーが戻ったときに正しいアクティビティが開始されます。

NavUtilsは、この動作を構築するのに便利なクラスであり、様々なAPIレベルの範囲で動作するサポートライブラリの一部です。

+0

これは、アクティビティが実行されなかった(この新しいプロセスでは)、セッション/ログインなどがないため、特定のことが起こらなかったブランクアプリケーションにユーザーが入ろうという事実を変更しません。 – NikkyD

関連する問題