场景:我有一个简单的待办事项应用程序在主要活动中我有一个片段,它从用户那里获取待办事项列表。我在未来的固定时间设置了一个警报(在我的情况下,每2分钟只进行一次测试.AlarmReceiver类启动一个AlarmActivity,显示待办事项列表作为用户标记为已完成的复选框。
当警报出现并显示列表时,我有一个"提交"按钮将所有选中的项目标记为已完成'在本地数据库中。
问题: 点击提交后,此AlarmActivity会消失,因为我正在调用完成。但是当我从图标启动应用程序时,会显示AlarmActivity而不是主要活动。
AlarmReceiver代码:
final Intent intent1 = new Intent(context, CheckListAlarmActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | Intent.FLAG_ACTIVITY_NO_HISTORY);
context.startActivity(intent1);
AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:noHistory="true"
android:clearTaskOnLaunch="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=".AlarmActivity"
android:alwaysRetainTaskState="false"
android:clearTaskOnLaunch="true"
android:showOnLockScreen="true"
android:screenOrientation="sensorPortrait"
android:noHistory="true"/>
<receiver android:name=".AlarmReceiver" />
</application>
我添加了android:clearTaskOnLaunch="true"
,这似乎有时会发挥作用,但并非总是如此。
在我放置记录器的后台,它显示每次我使用应用程序图标启动时,它会调用MainActivity的onCreate
,然后立即调用AlarmActivity的onCreate
。 / p>
我试过寻找各种解决方案,并尝试为Intent设置一堆标志。似乎没什么可令人信服的。
这似乎是一个简单的问题,但我无法找到解决方案。任何帮助/指导将不胜感激。