类似于Android多任务界面,可以切换到指定的App
update:修改一下,其实是想问是否有能在Android shell中执行的指令,看了一下Google的文档,发现am也是可以实现的:
am start -W --activity-brought-to-front -n [<URI> | <PACKAGE> | <COMPONENT>]
没有直接的api可以调用,不过这种切换还是可以实现的。
思路如下:
多任务切换实现包含两个部分,分别是,当前运行APP列表的显示,以及切换到指定APP某一个Activity
(一般是最后一个入栈的Activity
)方法。
-
ActivityManager.RunningTaskInfo
这个类用于保存当前正在运行的某一个task栈的数据。该类的baseActivity
和topActivity
分别用于记录第一个入栈和最后一个入栈的Activity
。同时该类还会记录一些其他属性,如id,缩略图等。(这里记录的是Activity
的ComponentName
) - 用
ActivityManager
的getRunningTasks(int maxNum)
返回当前正在运行的task栈列表,这里需要传入一个maxNum
用来限制返回栈的数量。(如果需要返回所有运行栈的话,可以调用ActivityManager
的getRunningAppProcesses()
来获取正在运行的应用进程列表,从而得到所有正在运行的应用进程的数量) - 启动一个
Activity
只需要把RunningTaskInfo
中获取的ComponentName
传入Intent
即可。
Intent intent = new Intent();
ComponentName cn = runningTaskInfo.topActivity;
intent.setComponent(cn);
startActivity(intent);
http://developer.android.com/reference/android/app/ActivityManager.RunningTaskInfo.html
http://developer.android.com/reference/android/app/ActivityManager.html
http://developer.android.com/reference/android/content/ComponentName.html