如何处理活动堆栈?

时间:2016-09-02 04:26:32

标签: android listview android-activity stack

我有4项活动。其中两个用于登录/注册。成功登录后,用户移动到活动室,用户可以选择聊天室。然后,他可以按下并选择另一个房间在两个/多个房间聊天。现在我不想完成聊天活动。当用户在房间活动中按下(两次)时,整个应用程序应该完成。

但是,由于它丢失了数据,而不是完成它启动聊天活动引发错误。现在我该怎样才能做到这一点。 聊天活动是从customadapter启动的,它使用标记重新排序在前台启动后台活动。

更新

我不想在背部新闻上完成我的聊天活动。我知道如何完成()工作。我想要清理堆叠并退出房间活动的背景。

建议: 不要教我如何通过调用完成或如何退出双重回退来完成活动。如果你没有足够的关于标志的知识,那么就没有必要用垃圾加载StackOverflow。

3 个答案:

答案 0 :(得分:0)

尝试这样:

boolean doubleBackToExitPressedOnce = false;

@Override
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
        super.onBackPressed();
        return;
    }

this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

new Handler().postDelayed(new Runnable() {

    @Override
    public void run() {
        doubleBackToExitPressedOnce=false;                       
    }
}, 2000);

}

答案 1 :(得分:0)

您应该尝试清除该特定任务的活动堆栈。所以在开火之前这样做startActivity

yourIntent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP)

答案 2 :(得分:0)

你可能没有完成你的活动,所以在后退时再次调用它,所以在通过调用finish()方法开始聊天室活动之前完成上一个活动。

如果你想在按下(两次)完成申请,那么你应该在聊天室活动中管理onBackPressed()方法的计数器。