Giới thiệu
Bài viết này hướng dẫn cách kiểm tra xem một ứng dụng Android có đang chạy ở chế độ nền (background) hay không. Chúng ta sẽ sử dụng ActivityManager để lấy trạng thái tiến trình của ứng dụng.
Các bước thực hiện
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền đầy đủ thông tin để tạo dự án mới.
Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textStyle="bold"
android:layout_centerInParent="true"
android:text="Kiểm tra ứng dụng Android chạy trong Background" />
</RelativeLayout>
Bước 3: Viết logic kiểm tra (src/MainActivity.java)
import androidx.appcompat.app.AppCompatActivity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Boolean appRunningBackground;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityManager.RunningAppProcessInfo runningAppProcessInfo = new ActivityManager.RunningAppProcessInfo();
ActivityManager.getMyMemoryState(runningAppProcessInfo);
// Kiểm tra xem ứng dụng có đang chạy ở foreground không
appRunningBackground = runningAppProcessInfo.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
if (appRunningBackground) {
Toast.makeText(getApplicationContext(), "Ứng dụng Android của bạn đang chạy trong Background", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Ứng dụng Android của bạn KHÔNG chạy trong Background", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onPause() {
super.onPause();
Toast.makeText(getApplicationContext(), "Ứng dụng Android của bạn đang chạy trong Background", Toast.LENGTH_SHORT).show();
}
}
Bước 4: Cấu hình Manifest (androidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<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">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Chạy ứng dụng
Kết nối thiết bị Android thật với máy tính, nhấn nút Run trên toolbar Android Studio, chọn thiết bị và quan sát kết quả hiển thị trên màn hình.

Giải thích kỹ thuật
Phương pháp sử dụng ActivityManager.getMyMemoryState() để lấy thông tin tiến trình hiện tại. Thuộc tính importance của RunningAppProcessInfo cho biết mức độ ưu tiên của tiến trình:
IMPORTANCE_FOREGROUND: Tiến trình đang chạy ở foreground (người dùng đang tương tác)- Các giá trị khác: Tiến trình đang chạy ở background
Lưu ý: Cách này hoạt động tốt trên các phiên bản Android cũ. Trên Android 10+ (API 29+), việc truy xuất danh sách tiến trình bị hạn chế do chính sách quyền riêng tư.