0

要与我正在开发的应用程序断开连接,我会停止所有活动并启动LoginActivity。为此,我使用下面的代码。 LoginActivity已启动,但当我点击手机的后退按钮时,我再次连接时未提供登录名和密码。停止Android应用程序的所有活动和片段

注:我的应用程序中也有片段!

你能帮我吗?

// 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); 

回答

1

呼叫i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)设置标志Intent.FLAG_ACTIVITY_CLEAR_TOP在Intent标志。然后,你这样做:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

这台意向标志的内容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实例并将其放在堆栈顶部。

+0

问题解决了,非常感谢你:) – 2014-09-25 23:44:55

相关问题