1

Scenario : I have a simple to-do app where In the main activity I have a fragment that takes a list of to-dos from the user. I set an alarm for a fixed time in the future (in my case every 2 min ONLY for testing. The AlarmReceiver class launches an AlarmActivity which shows the list of to-dos as checkboxes for the user to mark as done.

When the alarm comes up and shows the list, I have a "Submit" button to mark all the checked items as 'done' in the local db.

Problem: This AlarmActivity disappears on click of submit since I'm calling finish on it. But when I launch the app from the icon, the AlarmActivity is shown instead of the main activity.

AlarmReceiver code :

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>

I added the android:clearTaskOnLaunch="true" and that seems to do the trick sometimes but not always.

And in the background when I put the loggers, it shows that every time I launch using the app icon it calls the onCreate of the MainActivity and then immediately calls the onCreate of the AlarmActivity.

I have tried looking for all kinds of solutions and tried setting a bunch of flags to the Intent. Nothing seems to do the trick convincingly.

It seems like a simple problem but I am not able to find the solution. Any help/guidance would be appreciated.

LeoNeo
  • 739
  • 1
  • 9
  • 28

0 Answers0