Skip to content

BackgroundService not starting when Usage Access is granted during onboarding (requires re-launch) #170

Description

@TimeToBuildBob

Summary

When a user grants the Usage Access permission during the onboarding flow (via the Permissions screen), the BackgroundService and aw-server-rust do not start after FINISH is tapped. The user sees the home screen but no tracking is active.

Steps to Reproduce

  1. Fresh install of aw-android
  2. Launch app → OnboardingActivity → Permissions screen
  3. Grant Usage Access permission (either via the system settings dialog or programmatically)
  4. Tap FINISH
  5. App returns to home screen

Expected: BackgroundService starts, aw-server-rust comes up on 127.0.0.1:5600, sync scheduler starts.

Actual: Process gets frozen/backgrounded. No BackgroundService, no aw-server-rust, no sync scheduler. Logcat shows:

ActivityManager: freezing <pid> net.activitywatch.android.debug

Workaround

Re-launching the app after granting usage access works correctly. On second launch, MainActivity detects that usage access is now granted and starts BackgroundService normally.

Root Cause (Suspected)

In MainActivity, the check if (firstTime || !isUsageAllowed()) runs at activity creation. When usage access is granted during the onboarding flow (after MainActivity has already started OnboardingActivity), the OnboardingActivity.FINISH callback doesn't re-check permissions and doesn't start the service — it just finishes.

Suggested fix: in OnboardingActivity's FINISH callback (or the activity result handler in MainActivity), call startService(BackgroundService) explicitly if usage access is now granted.

Environment

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions