android 获取所有正在运行的activity

ActivityManageram=(ActivityManager)getSystemService(ACTIVITY_SERVICE);List<RunningTas... ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> list = am.getRunningTasks(30);
这个可以获取,
但是后面的那个maxNum是固定的要手动的去输入,如果实际运行的activity有31个就不能获得全部的了,想到过用list.size()获得实际的数量然后再与30作比较,如果等于30,就30+10再次去获得,直到实际运行的activity小于我给的值。。

我只是想通过简单的方法获得实际正在运行的activity。。
展开
 我来答
wangwei7066
2015-09-18 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6693
采纳率:54%
帮助的人:1390万
展开全部

首先是新建一个Android工程,然后修改【main.xml】文件如下:

添加一个ListView

[html] view plaincopy

<?xml version="1.0" encoding="utf-8"?>  

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    android:orientation="vertical"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    >  

<ListView    

    android:layout_width="fill_parent"   

    android:layout_height="wrap_content"   

    android:id="@+id/tasklist"  

    />  

</LinearLayout>  


 

然后编辑【java代码】

[java] view plaincopy

package com.cayden.run;  

  

import java.util.ArrayList;  

import java.util.Iterator;  

import java.util.List;  

  

import android.app.Activity;  

import android.app.ActivityManager;  

import android.app.ActivityManager.RunningTaskInfo;  

import android.content.Context;  

import android.os.Bundle;  

import android.widget.ArrayAdapter;  

import android.widget.ListAdapter;  

import android.widget.ListView;  

  

public class MyActivityRunDemo extends Activity {  

      

    private ListView tasklist=null;  

    private ListAdapter adapter=null;  

    private List<String> all=new ArrayList<String>();  

    private ActivityManager activityManager=null;  

    /** Called when the activity is first created. */  

    @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

          

        tasklist=(ListView)this.findViewById(R.id.tasklist);  

          

        activityManager=(ActivityManager)super.getSystemService(Context.ACTIVITY_SERVICE);  

          

        listActivity();  

    }  

      

    public void listActivity(){  

    List<RunningTaskInfo> tasks=  activityManager.getRunningTasks(30);  

        Iterator<RunningTaskInfo> itInfo=tasks.iterator();  

        while(itInfo.hasNext()){  

            RunningTaskInfo info=itInfo.next();  

            all.add("【id="+info.id+"】,"+info.baseActivity.getClassName());  

              

        }  

        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,this.all);  

          

        tasklist.setAdapter(adapter);  

    }  

}  


 

最后需要再配置所需要的权限【AndroidManifest.xml】

[html] view plaincopy

<?xml version="1.0" encoding="utf-8"?>  

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  

      package="com.cayden.run"  

      android:versionCode="1"  

      android:versionName="1.0">  

    <application android:icon="@drawable/icon" android:label="@string/app_name">  

        <activity android:name=".MyActivityRunDemo"  

                  android:label="@string/app_name">  

            <intent-filter>  

                <action android:name="android.intent.action.MAIN" />  

                <category android:name="android.intent.category.LAUNCHER" />  

            </intent-filter>  

        </activity>  

  

    </application>  

    <uses-sdk android:minSdkVersion="8" />  

  

<uses-permission android:name="android.permission.GET_TASKS"></uses-permission>  

</manifest>   


程序运行效果如图所示:

微测检测
2023-10-30 广告
深圳市微测检测有限公司始创于2005年,是一家综合性、全方位、一站式的权威第三方检测认证公司。自成立以来,Microtest微测检测已成功为上万家企业完成数十万计的产品测试和认证,协助企业的产品畅销全球。Microtest微测检测已建立二十... 点击进入详情页
本回答由微测检测提供
czqname
2012-06-05 · TA获得超过224个赞
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:173万
展开全部
你可以输入大一点,比如1000 ,实际上肯定不会有这么多task 的。
注意 ,返回的是RunningTaskInfo ,而不是activity 。
我的理解,用户只能取到RunningTaskInfo 的 baseActivity 和 topActivity ,其他中间的无法取。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式