Android 从不同的发布源将应用程序带到前台后,应用程序将重新启动
嗨,我被这个问题困住了。 我的应用程序有3项活动: SplashScreenActivity、LoginsScreenActivity、ViewPagePractivity,其中包含3个片段。 当我将apk放入移动SD卡并使用packagemanager安装和打开时。我的应用程序启动得很好。 问题-但是,现在如果我按下Home(主页)按钮,然后再次从应用程序抽屉/主屏幕启动应用程序。该应用程序似乎重新启动,我必须通过整个流程的飞溅和登录屏幕 如果我第一次从应用程序抽屉启动应用程序本身,则不会出现此问题。/如果我长按Home按钮并从最近的应用程序列表中选择应用程序,则应用程序也会正确恢复 作为参考,我使用这些标志启动活动 启动->登录 LoginActivity->ViewPageActivityAndroid 从不同的发布源将应用程序带到前台后,应用程序将重新启动,android,android-intent,Android,Android Intent,嗨,我被这个问题困住了。 我的应用程序有3项活动: SplashScreenActivity、LoginsScreenActivity、ViewPagePractivity,其中包含3个片段。 当我将apk放入移动SD卡并使用packagemanager安装和打开时。我的应用程序启动得很好。 问题-但是,现在如果我按下Home(主页)按钮,然后再次从应用程序抽屉/主屏幕启动应用程序。该应用程序似乎重新启动,我必须通过整个流程的飞溅和登录屏幕 如果我第一次从应用程序抽屉启动应用程序本身,则不会出现
主屏幕图标启动您声明为主要的任何活动。。。清单中的启动器活动。通常,清单中的启动活动应该是应用程序的主要活动。在那里,您可以在需要时调用启动屏幕和登录活动。删除这些标志或完整的代码行
intent.addFlagsIntent.FLAG\u活动\u新任务 使用package manager启动时,这似乎是一个问题。
要进行此更改,我最终必须为每次调用onPause保存和恢复实例,在那里我必须存储我当前的infocus活动/片段详细信息。我的问题是,为什么系统不像问题中提到的其他场景那样恢复应用程序。这是处理场景的方法之一,因此接受答案。虽然我找到了我在回答中提到的问题的根本原因。
Intent intent=new Intent(SplashScreen.this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Intent intent = new Intent(context, ViewPagerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
if (!isTaskRoot()) {
Intent intent = getIntent();
String action = intent.getAction();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && action != null && action.equals(Intent.ACTION_MAIN)) {
finish();
return;
}
}