我的应用程序有一个小部件,它需要在某种程度上独立于应用程序。
活动工作流程应该是这样的:
Widget -> Activity 作为接收者
Receiver -> LoginPage 或 Activity A(取决于登录状态)
登录页面 -> 活动 A
活动 A onKeyDown -> 活动 B
活动 B onKeyDown -> 主屏幕。
在活动 B 之前我没有问题,当我按下 onKeyDown 时它会发送回活动 A。我正在使用FLAG_ACTIVITY_CLEAR_TOP标志并在开始活动 B 时完成活动。
当我使用 CLEAR_TOP 标志从 ActivityA 移动到 ActivityB 时,我认为 Activity 堆栈已被清除,然后在 ActivityB 中,我在 onKeyDown() 方法上完成 Activity,假设应用程序将被关闭,但它没有。为什么?
我也尝试在接收器中使用 FLAG_ACTIVITY_CLEAR_TASK 和 FLAG_ACTIVITY_NEW_TASK 但我不太了解这种机制。对此有任何想法吗?