android 获取所有正在运行的activity

android 获取所有正在运行的activity,第1张

首先是新建一个Android工程,然后修改mainxml文件如下:

添加一个ListView

[html] view plaincopy

<xml version="10" encoding="utf-8">

<LinearLayout xmlns: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 comcaydenrun;

import javautilArrayList;

import javautilIterator;

import javautilList;

import androidappActivity;

import androidappActivityManager;

import androidappActivityManagerRunningTaskInfo;

import androidcontentContext;

import androidosBundle;

import androidwidgetArrayAdapter;

import androidwidgetListAdapter;

import androidwidgetListView;

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) {

      superonCreate(savedInstanceState);

      setContentView(Rlayoutmain);

     

      tasklist=(ListView)thisfindViewById(Ridtasklist);

     

      activityManager=(ActivityManager)supergetSystemService(ContextACTIVITY_SERVICE);

     

      listActivity();

  }

 

  public void listActivity(){

  List<RunningTaskInfo> tasks=  activityManagergetRunningTasks(30);

      Iterator<RunningTaskInfo> itInfo=tasksiterator();

      while(itInfohasNext()){

          RunningTaskInfo info=itInfonext();

          alladd("id="+infoid+","+infobaseActivitygetClassName());

         

      }

      adapter=new ArrayAdapter<String>(this, androidRlayoutsimple_list_item_1,thisall);

     

      tasklistsetAdapter(adapter);

  }

}

最后需要再配置所需要的权限AndroidManifestxml

[html] view plaincopy

<xml version="10" encoding="utf-8">

<manifest xmlns:android=">

    package="comcaydenrun"

    android:versionCode="1"

    android:versionName="10">

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

      <activity android:name="MyActivityRunDemo"

                android:label="@string/app_name">

          <intent-filter>

              <action android:name="androidintentactionMAIN" />

              <category android:name="androidintentcategoryLAUNCHER" />

          </intent-filter>

      </activity>

  </application>

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

<uses-permission android:name="androidpermissionGET_TASKS"></uses-permission>

</manifest>

程序运行效果如图所示:

实例代码如下“

public class MyActivity extends Activity

3 {

4 public void test(){};

5 public void test(int position){}

6 }

7 BaseAdater:

8 public class MyBaseAdapter extends BaseAdapter{

9 MyActivity context;

10 public MyBaseAdapter(MyActivity context){

11 thiscontext = context;

12 }

13 //其他函数中调用MyActivity的方法。

14 contexttest();

15 contexttext(1);

16

在minifest中注册该Activity时加上一个<intent-fiter> <action/></intent-filter> action中注明你的广播就OK了。

这个方法需要app获取androidpermissionREAL_GET_TASKS权限

Android 50以上只对系统应用开放。

Android50以下需要添加权限:

androidpermissionGET_TASKS

在android中context可以作很多 *** 作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是

application

context,一种是activity

context,通常我们在各种类和方法间传递的是activity

context。

比如一个activity的onCreate:

protected

void

onCreate(Bundle

state)

{

superonCreate(state);

TextView

label

=

new

TextView(this);

//传递context给view

control

labelsetText("Leaks

are

bad");

setContentView(label);

}

把activity

context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源:view

hierachy,

resource等。

这样如果context发生内存泄露的话,就会泄露很多内存。

这里泄露的意思是gc没有办法回收activity的内存。

Leaking

an

entire

activity是很容易的一件事。

当屏幕旋转的时候,系统会销毁当前的activity,保存状态信息,再创建一个新的。

intentputExtra("username1",username);

Bundle data = new Bundle();

dataputString("username1",username);

intentputExtras(data);

以上就是关于android 获取所有正在运行的activity全部的内容,包括:android 获取所有正在运行的activity、安卓adapter中怎么获取activity、请问下Android里怎么获取桌面或系统里的某个Activity对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9642983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存