我设计了一个通过许多活动的应用程序。在每个页面中我都设置了Logout按钮。单击Logout时,我完成了当前的Activity并使用FLAG_ACTIVITY_CLEAR_TOP并启动Login Activity。它可以工作,但是当我按下后退按钮时,它会加载我退出的最后一个活动。
在一些建议中,我发现必须完成每项活动并开始下一项活动。但我不能这样做,因为当我按下后退按钮时,活动必须重新加载,但它必须从之前的活动中获取一些已经完成的数据。
实际上我想要做的是,我想从任何页面注销我的应用程序。请提出任何建议。
答案 0 :(得分:0)
我设法通过同时添加FLAG_ACTIVITY_NEW_TASK
来实现这一目标,而在我的AndroidManifest中,我发布的Activity也有android:launchMode="singleTop"
。不确定这是否是最好的方法,但它确实有效。
答案 1 :(得分:0)
也许你可以完成()你的活动并开始下一个活动。
对于后退按钮,您可以使用startActivityOnresult()
因此您应该从应用中的任何位置注销。
答案 2 :(得分:0)
您可能还想添加一段代码(或对实用程序方法的调用),以检查用户是否已登录(如果没有,则将其转发到登录活动),每个onResume
你的活动。这样可以确保在没有登录的情况下不会使用任何活动 - 并且还有助于解决后退按钮问题。
答案 3 :(得分:0)
创建一个Application的子类,您的所有活动都属于该子类。在其中,维护一个静态的活动集合,需要在用户注销时完成。在onCreate方法中将需要完成的每个Activity添加到集合中。当用户注销时,遍历集合并在其中的每个Activity上调用finish()。