创建活动架构Android

时间:2014-05-01 22:09:21

标签: android architecture

在创建应用程序时我遇到了架构问题。我想这样做:enter image description here

我的一切都清楚地显示出来。顺便说说。当app用户处于菜单活动状态时,如果他按下后退按钮(不是注销方法),他就不会注销。 我是android的新手,有人可以给我一个建议吗? 我应该使用什么方法?

                Intent menuIntent = new Intent(
                        "com.project.simplify.NewReviewActivity");
                menuIntent.putExtra("user", user);
                menuIntent.putExtra("link", realLink);
                startActivity(menuIntent);

这是Logout方法:

Intent loginIntent = new Intent(this, LoginActivity.class);
                loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(loginIntent);

                finish();

如何解决 我的问题:

public static MenuActivity MenuActivityObject;

onCreate()
{
    MenuActivityObject = this;
}

现在在logout方法中使用该对象来完成菜单活动:

Logout()
{
    MenuActivity.MenuActivityObject.finish();
}

5 个答案:

答案 0 :(得分:1)

当您从Activity中的任何一个点击退出以启动LoginActivity时,请使用Intent.FLAG_ACTIVITY_CLEAR_TASK。这将清除堆栈中的所有先前Activity

Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

当用户在MenuActivity上按BACK时,系统将finish MenuActivity,用户将根据您的体系结构转到LoginActivity。它会完美地运作

答案 1 :(得分:0)

如果您想在用户按下按钮时注销,可以在“菜单活动”中覆盖“onBackPressed”并调用“注销方法”。

答案 2 :(得分:0)

这是因为您在启动活动1时未关闭manu活动。

例如

MenuActivity

的OnCreate {

Intent inte = new Intent(context,Activity1.class);
startActivity(inte);
finish();
}

如果你不打电话"完成()" MenuActivity仍然存在。发布您的源代码。

答案 3 :(得分:0)

您的注销方法启动LoginActivity并终止上次启动的Activity,Activity1,Activity2或Activity3。

如果您在启动下一个活动时没有关闭MenuActivity,则MenuActivity会保留在堆栈中,因此当您注销时,启动LoginActivity,但如果用户按下后退按钮,系统会将LoginActivity替换为上一个活动堆栈,在本例中为MenuActivity。

答案 4 :(得分:0)

更改您的退出代码

Intent loginIntent = new Intent(this, LoginActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(loginIntent);

                finish();