📌  相关文章
📜  如何以编程方式在 Android 中获取当前正在运行的任务?

📅  最后修改于: 2022-05-13 01:54:50.284000             🧑  作者: Mango

如何以编程方式在 Android 中获取当前正在运行的任务?

Android 设备在后台运行多个任务,为用户提供无缝体验。重要的是,跟踪后台和前台使用情况很重要,因为它直接影响电池寿命和静态内存,即 RAM。可以在设置中启用开发人员选项来跟踪所有后台任务和服务。然而,人们甚至可以通过编程方式找出相同的结果。因此,在本文中,我们将向您展示如何以编程方式获取 Android 中当前正在运行的任务。 IDE 准备就绪后,请按照以下步骤操作。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择Kotlin作为主要语言。

第 2 步:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。我们添加了一个 TextView 来显示正在运行的任务列表。

XML


  
    
  


Kotlin
package org.geeksforgeeks.currentlyrunningapps
  
import android.app.ActivityManager
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import java.util.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the 
        // TextView from the layout file
        val mTextView = findViewById(R.id.text_view)
          
        // Getting the instance of ActivityManager
        val mActivityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
          
        // Getting the tasks in the form of a list
        val mRecentTasks: List = Objects.requireNonNull(mActivityManager).getRunningTasks(Int.MAX_VALUE)
  
        var mString = ""
  
        // Creating a string of each index of the list
        for (i in mRecentTasks.indices){
            mString = mString + " " + mRecentTasks[i].baseActivity?.toShortString() + " " + mRecentTasks[i].id + "\n\n"
        }
  
        // Setting the TextView with the string
        mTextView.text = mString
    }
}


第 3 步:使用MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。在主代码中,我们将主要使用 ActivityManager 来获取正在运行的任务列表。

科特林

package org.geeksforgeeks.currentlyrunningapps
  
import android.app.ActivityManager
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import java.util.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the 
        // TextView from the layout file
        val mTextView = findViewById(R.id.text_view)
          
        // Getting the instance of ActivityManager
        val mActivityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
          
        // Getting the tasks in the form of a list
        val mRecentTasks: List = Objects.requireNonNull(mActivityManager).getRunningTasks(Int.MAX_VALUE)
  
        var mString = ""
  
        // Creating a string of each index of the list
        for (i in mRecentTasks.indices){
            mString = mString + " " + mRecentTasks[i].baseActivity?.toShortString() + " " + mRecentTasks[i].id + "\n\n"
        }
  
        // Setting the TextView with the string
        mTextView.text = mString
    }
}

输出:

您可以看到正在运行的任务列表,如下所示。