Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách kiểm tra ứng dụng đang chạy trong Android

Giới thiệu

Hướng dẫn này trình bày cách lấy danh sách các task (nhiệm vụ) đang chạy trong Android sử dụng ActivityManager. Lưu ý: Từ API 21+, cách này chỉ trả về task của ứng dụng hiện tại do hạn chế bảo mật.

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 thông tin cần thiết.

Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
</LinearLayout>

Bước 3: Viết logic xử lý (src/MainActivity.java)

package app.com.sample;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.List;
import java.util.Objects;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TextView textView = findViewById(R.id.textView);
        ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        
        // Lấy danh sách AppTask (chỉ task của app hiện tại từ API 21+)
        List<ActivityManager.AppTask> tasks = Objects.requireNonNull(activityManager).getAppTasks();
        
        StringBuilder result = new StringBuilder();
        for (ActivityManager.AppTask task : tasks) {
            String taskValue = "Ứng dụng đang chạy: " + task.getTaskInfo().baseActivity.toShortString() 
                + "\tID: " + task.getTaskInfo().taskId + "\n";
            result.append(taskValue);
        }
        textView.setText(result.toString());
    }
}

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>

Lưu ý quan trọng

  • Từ Android 5.0 (API 21), getRunningTasks() và getRunningAppProcesses() bị giới hạn chỉ trả về thông tin của ứng dụng gọi
  • Để lấy thông tin tiến trình khác, cần quyền android.permission.PACKAGE_USAGE_STATS và người dùng phải cấp quyền trong Settings
  • Phương pháp getAppTasks() chỉ trả về task của ứng dụng hiện tại

Chạy ứng dụng

Kết nối thiết bị Android, nhấn Run trong Android Studio để xem danh sách task của ứng dụng.

Cách kiểm tra ứng dụng đang chạy trong Android