2014-02-13 75 views
0

我要疯了。应用会不断加载不应在应用启动时启动的页面?

我收到一个很奇怪的问题。日志中没有任何内容表明任何错误。快速浏览我的应用程序的工作方式。我以新用户的身份运行应用程序,我看到一个启动画面,用于检查我是否已登录,作为新用户,我不是,因此它将我带到登录页面。我登录到Facebook(获得basic_info和生日权限)。然后,应用程序启动教程页面viewpager(FragmentPagerActivity.class)。

当用户到达最后一页时,有按钮说他完成了教程。它在SharedPrefs中存储一个真布尔值,并将它们带到加载了Google地图视图的导航抽屉中。

这是我的问题。一旦我到达地图页面并想要退出应用程序,我按下后退按钮,应用程序关闭。如果我决定再次启动应用程序,它将再次显示教程将启动带有地图视图的导航抽屉!

在初始屏幕上,我运行if语句以查看他们是否看过教程,SharedPrefs在该教程中返回true。所以if语句正确运行。 (这是正确启动导航抽屉的原因)。

如果我从Android的任务管理器的东西杀了应用程序,然后启动它,它工作得很好!所以有一个FragmentPagerActivity的实例总是在其他任何地方启动。

有谁知道我能做什么?对不起,文字墙。这就是我所说的只是FragmentPagerActivity在登录后:

Intent in = new Intent(MainActivity.this, FragmentPagerActivity.class); 
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(in); 
finish(); 

我还运行它获取用户位置的服务,实际上它的正是这一点:http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

莫非是干扰?请询问是否需要其他部分的更多代码,我只是看不到FragmentPagerActivity.class从哪里启动。这不叫任何地方。我甚至在启动画面上的应用程序中调用了它的一个地方。

我没有得到这个在我的日志试了几次前:

startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { cmp=package.name.here/.FragmentPagerActivity } 

然而,这并不显示出来后,我在我所有的意图改变的情况下叫停getApplicationContext()和使用SplashScreen.this。因此,我认为我解决了这个问题。

再次,道歉的文字墙,我真的很感谢某人的帮助。谢谢。

回答

0

问题在于Facebook,它每次都会启动该活动,因为它已列在Facebook的仪表板中。将登录页面更改为片段并修复了问题。