要与我正在开发的应用程序断开连接,我将停止所有活动并启动LoginActivity。为此,我使用下面的代码。 LoginActivity已启动,但是当我点击手机的后退按钮时,我再次连接而没有提供登录名和密码。
注意:我的应用程序中还有片段!
你可以帮我pllz吗?// After logout redirect user to Loing Activity
Intent i = new Intent(_context, LoginActivity.class);
// Closing all the Activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Add new Flag to start new Activity
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Staring Login Activity
_context.startActivity(i);
答案 0 :(得分:1)
调用i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
在Intent标志中设置标志Intent.FLAG_ACTIVITY_CLEAR_TOP
。然后你这样做:
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
这会将Intent标记的内容设置为Intent.FLAG_ACTIVITY_NEW_TASK
,从而清除您之前设置的标记Intent.FLAG_ACTIVITY_CLEAR_TOP
!
您不需要使用Intent.FLAG_ACTIVITY_NEW_TASK
,因为这实际上不会启动新任务(因为您的活动都具有相同的taskAffinity
)。
设置Intent.FLAG_ACTIVITY_CLEAR_TOP
应该足以做你想做的事。但是,您需要确保LoginActivity
在任务中仍处于活动状态(即:您不应该在其上调用finish()
)。如果您的LoginActivity
没有出现在您的任务的活动堆栈中(因为您已经在其上调用了finish()
),那么Android将只创建LoginActivity
的新实例,把它放在堆栈顶部。