在启动应用

时间:2017-05-02 10:18:43

标签: android-activity alarmmanager alarm android-launcher repeatingalarm

场景:我有一个简单的待办事项应用程序在主要活动中我有一个片段,它从用户那里获取待办事项列表。我在未来的固定时间设置了一个警报(在我的情况下,每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设置一堆标志。似乎没什么可令人信服的。

这似乎是一个简单的问题,但我无法找到解决方案。任何帮助/指导将不胜感激。

0 个答案:

没有答案