# Android Background Execution

> Expert guidance on implementing and managing background tasks in modern Android applications (API 30+).

- **Type:** Skill
- **Install:** `agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-background-execution`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [prasad-vennam](https://agentstack.voostack.com/s/prasad-vennam)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [prasad-vennam](https://github.com/prasad-vennam)
- **Source:** https://github.com/prasad-vennam/Awesome-Android-AI-Agent-Skills/tree/main/skills/android-background-execution

## Install

```sh
agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-background-execution
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Android Background Execution Skill

This skill provides a structured approach to implementing background work in Android, ensuring high performance, battery efficiency, and compliance with modern system restrictions (API 30 and above).

## When to Use

- Implementing deferred tasks (e.g., database sync, log uploading).
- Running immediate, user-perceivable tasks (e.g., media playback, active navigation).
- Scheduling time-sensitive actions (e.g., calendar reminders, exact alarms).
- Navigating background execution limits and battery optimization (Doze Mode).

## 🛠 Core Technologies

### 1. WorkManager (Recommended)

Use for **persistent, deferrable work** that must execute even if the app exits or the device restarts.

- **Immediate**: Tasks that should start as soon as possible (can use `setExpedited(true)`).
- **Long-Running**: Tasks that might run longer than 10 minutes (API 31+ requires a Foreground Service).
- **Periodic**: Recurring tasks (minimum 15-minute interval).

### 2. Foreground Services

Use for **immediate, user-visible work** that is the primary focus of the app (e.g., Music Player, Step Tracker).

- Must show a persistent notification.
- From API 34+, you must declare a `foregroundServiceType` in the manifest.

### 3. Alarms (`AlarmManager`)

Use for **exact, time-based scheduling**.

- Avoid for general background work to save battery.
- `setExactAndAllowWhileIdle()` is for high-precision needs (e.g., clocks).

---

## 🚀 Implementation Workflow

### 1. Choose the Right Tool

| Requirement | Recommended Tool |
| :--- | :--- |
| Deferrable, restart-resilient | `WorkManager` (OneTime/Periodic) |
| Immediate, continues when app is closed | `WorkManager` (Expedited) |
| User-visible, real-time | `Foreground Service` |
| Specific clock time (e.g. 8:00 AM) | `AlarmManager` |

### 2. Implementation Patterns

#### WorkManager (Kotlin)

```kotlin
class SyncWorker(context: Context, params: WorkerParameters) : CoroutineWorker(context, params) {
    override suspend fun doWork(): Result {
        return try {
            // Background logic here
            Result.success()
        } catch (e: Exception) {
            if (runAttemptCount ()
    .setConstraints(constraints)
    .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 1, TimeUnit.MINUTES)
    .build()

WorkManager.getInstance(context).enqueue(syncRequest)
```

#### Foreground Service (API 34+)

1. **Manifest Declaration**:

```xml

```

2. **Service Implementation**:

```kotlin
class MyService : Service() {
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        val notification = NotificationCompat.Builder(this, CHANNEL_ID)
            .setContentTitle("Syncing Data")
            .setSmallIcon(R.drawable.ic_sync)
            .build()
        
        ServiceCompat.startForeground(this, 1, notification, FOREGROUND_SERVICE_TYPE_DATA_SYNC)
        // logic...
        return START_NOT_STICKY
    }
}
```

---

## 💡 Best Practices & Constraints

- **Battery Optimization**: Respect Doze Mode. `WorkManager` handles this automatically by batching requests.
- **Expedited Work**: For WorkManager tasks that need to start immediately, use `setExpedited(true)`. Note that this has quotas.
- **Connectivity**: Always use `Constraints` in `WorkManager` to prevent unnecessary wakeups when offline.
- **Error Handling**: Implement exponential backoff for retries to avoid "looping" failures.
- **Testing**: Use `WorkManagerTestInitHelper` for testing workers in unit/integration tests without waiting for real-world constraints.

## 📂 Project Organization

- Place Workers in `com.example.app.data.worker` or `com.example.app.ui.background`.
- Place Services in `com.example.app.service`.
- Keep business logic in `Repository` classes, not inside `Worker` or `Service` classes.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [prasad-vennam](https://github.com/prasad-vennam)
- **Source:** [prasad-vennam/Awesome-Android-AI-Agent-Skills](https://github.com/prasad-vennam/Awesome-Android-AI-Agent-Skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-prasad-vennam-awesome-android-ai-agent-skills-android-background-execution
- Seller: https://agentstack.voostack.com/s/prasad-vennam
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
