以下是我的用例:
用户点击App图标 - > MainActivity - > FirstActivity-> SecondActivity
SecondActivity有三个片段,即F1,F2,F3
假设用户在SecondActivity中处于F1状态,现在如果用户通过按主页按钮最小化应用程序,然后重新启动应用程序而不是使用应用程序图标,而是从列表中选择通过长按显示(不要?知道那个的技术名称
我已经探讨了大部分问题,甚至尝试了以下方法
How to make an android app return to the last open activity when relaunched?
(但这似乎有用,如果我想从应用程序图标,即从启动器重新启动我的应用程序):
以下是我的活动和片段生命周期方法调用日志:
当我最小化应用时:
重新打开应用
根据我的理解,这应该如下:
但是在重新打开app后,我的SecondActivity onResume没有被调用,而是调用了FirstActivity的onRestart,并调用了onSetroy的SecondActivity(如上所示)
在尝试了很多选项并阅读了几个SO解决方案后,我无法解决这个问题。
请提前告知,如何处理此事。
编辑:
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".controller.ApplicationLoader"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:alwaysRetainTaskState="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SplashActivity"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".RegistrationActivity"
android:label="@string/title_activity_registration"
android:noHistory="true"
android:screenOrientation="portrait"/>
<activity
android:name=".HomePageActivity"
android:label="@string/title_activity_home_page"
android:noHistory="true"
android:screenOrientation="portrait">
<!--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
<service
android:name=".services.BgService"
android:exported="false"
android:process=":remote" >
<intent-filter>
<action android:name="com.example.bgapp.BackgroundService" />
</intent-filter>
</service>
<receiver android:name=".services.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<activity android:name=".ProductOverviewActivity"
android:screenOrientation="portrait">
</activity>
<receiver android:name=".receivers.SmsReceiver"
android:screenOrientation="portrait">
<intent-filter android:priority="99999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<!-- Intent service -->
<service
android:name=".services.WService"
android:exported="false" />
<service android:name=".services.VerifyService" android:exported="false"/>
</application>
</manifest>
答案 0 :(得分:1)
您的问题是您的使用:
android:noHistory="true"
<{1>} RegistrationActivity
。一旦用户按下HOME,RegistrationActivity
就完成了。以下是关于noHistory
的文档的引用:
值“true”表示活动不会留下历史记录。它不会保留在任务的活动堆栈中,因此用户将无法返回该任务。