アクティビティ履歴の消去という 1 つの問題に直面しました。私の問題が発生した場合、次の結果が生じます。
A(SplashScreen)->B(GuestScreen)->C(Screen for signed users)->Press Home Button->A->B->Press Back Button->C->Press Back BUtton->B->Press Back Button->exit from the app.
私はそれを解決するためにさまざまな方法を試しましたが、ほぼすべてのアクティビティをsingleInstanceに設定する全体で非常に奇妙な解決策が1つしか見つかりませsetting all intent flags to CLEAR_TOP and NEW_TASK
んでしたが、すべてのアクティビティが奇妙なものを提示しています(通常とは異なり、最初に、actionBarと〜1の後に空の黒い画面が表示されます2 番目は私の実際のレイアウトに表示されます) と、既に述べたように少し遅れて表示されます。すべてが正しく閉じられ、正しい結果が得られるにもかかわらず、このソリューションは好きではありませんでした。今、私は、この遅延や奇妙な黒い画面が一瞬発生することなく、正常に動作するようにしようとしています. 私もインテントフラグで遊んでみましたCLEAR_TASK, CLEAR_TOP
。必要な場所で他の人に使用しようとしclearTaskOnLaunh for root activity and finishOnLaunch in manifest file
ましたが、役に立ちません。修正方法は?
編集:
clearTaskOnLaunch を A に再度設定しようとしています。アプリを初めて起動すると、次のログが表示されます (A は既にフラグなしで B を呼び出しています)。
Main stack:
TaskRecord{42610648 #869 A }
Intent { flg=0x10000000 cmp=/.activities.SplashActivity }
Hist #4: ActivityRecord{413cf8f8 /.activities.GuestActivity}
Intent { cmp=/.activities.GuestActivity }
ProcessRecord{414fdf60 15651:/10103}
// Guest Activity(B) は UserActivity(C) を呼び出します:
Intent { flg=0x10000000 cmp=/.activities.SplashActivity }
Hist #3: ActivityRecord{415c86f0 /.activities.UserActivity}
Intent { cmp=/.activities.UserActivity }
ProcessRecord{414fdf60 15651:/10103}
//ホームボタンを押して、アプリを再度起動します(A が B を呼び出しました):
TaskRecord{42610648 #869 A cashongo.app.peachy}
Intent { flg=0x10000000 cmp=c/.activities.SplashActivity }
Hist #5: ActivityRecord{42127398/.activities.GuestActivity}
Intent { cmp=/.activities.GuestActivity }
ProcessRecord{414fdf60 15651:/10103}
Hist #4: ActivityRecord{415c86f0 /.activities.UserActivity}
Intent { cmp=/.activities.UserActivity }
ProcessRecord{414fdf60 15651:/10103}
再び同じ問題、歴史の最後の活動。戻るボタンを押すと、UserActivity が取得されます。