停止Android应用程序的所有活动和片段

停止Android应用程序的所有活动和片段,android,android-intent,android-activity,android-fragments,Android,Android Intent,Android Activity,Android Fragments,要断开与我正在开发的应用程序的连接,我将停止所有活动并启动LoginActivity。为此,我使用下面的代码。LoginActivity已启动,但当我单击手机上的“后退”按钮时,我再次连接,但没有给出登录名和密码 注意:我的应用程序中也有碎片 你能帮我一下吗 // After logout redirect user to Loing Activity Intent i = new Intent(_context, LoginActivity.class); //

要断开与我正在开发的应用程序的连接,我将停止所有活动并启动LoginActivity。为此,我使用下面的代码。LoginActivity已启动,但当我单击手机上的“后退”按钮时,我再次连接,但没有给出登录名和密码

注意:我的应用程序中也有碎片

你能帮我一下吗

// 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);
调用
i.addFlags(Intent.FLAG\u ACTIVITY\u CLEAR\u TOP)
在Intent标志中设置标志
Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
。然后你要这样做:

    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
这将意向标志的内容设置为
Intent.FLAG\u ACTIVITY\u NEW\u TASK
,从而清除先前设置的标志
Intent.FLAG\u ACTIVITY\u CLEAR\u TOP

您不需要使用
Intent.FLAG\u ACTIVITY\u NEW\u TASK
,因为这实际上不会启动新任务(因为您的所有活动都具有相同的
taskAffinity

设置
Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
应该足以满足您的需要。但是,您需要确保您的
LoginActivity
在任务中仍然处于活动状态(即:您不应该对其调用
finish()
)。如果您的
LoginActivity
不在任务的活动堆栈中(因为您已经对其调用了
finish()
),那么Android将创建一个
LoginActivity
的新实例,并将其放在堆栈顶部