2014-03-13 24 views
0

我有一个android应用程序与一个loginActivity,然后MainActivity。BackButton带我回家,但返回到错误的活动

当您第一次打开您登录的应用程序并启动MainActivity时,startpoint是loginActivity。

我从MainActivity覆盖onBackPressed,所以你不会回到loginActivity,除非你点击一个注销按钮。

@Override 
public void onBackPressed() { 
Intent mainActivity = new Intent(Intent.ACTION_MAIN); 
    mainActivity.addCategory(Intent.CATEGORY_HOME); 
    mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(mainActivity); 
    finish(); 
} 

的问题是,当我按下返回键,则显示主luncher(如预期),但是当我再次打开该应用程序,它进入loginActivity。

有没有什么办法可以“绕过”loginActivity或者告诉android我上次留在哪个活动?

+0

我发现有人使用moveTaskToBack(true);这是正确的使用?任何意见?谢谢 – Nacho

+0

您可以使用sharedprefrences来存储上次访问活动用户的名称(即任何活动恢复时都会使用它的名称更改sharedprefrence)。并在主要活动直接启动该活动。 –

回答

0

如果用户已经登录,我会设置一个首选项。在LoginActivity的onCreate中,您可以检查首选项,并根据需要启动HomeActivity +在LoginActivity中调用finish()。这样,您甚至不必在以后重写onBackPressed,一切都将正常工作。

0

我建议改变你的应用程序在MainActivity的切入点,这样做的活动中进行检查,看是否该用户登录,并重定向到登录活动,如果他们还没有登录。