如何检查屏幕上显示的活动

时间:2013-02-13 11:23:09

标签: android android-activity

我想检查一下前面的哪个活动,来自一个没有活动的类(这只是另一个为我做了一些动作,但没有任何活动限制的类)。

如何从此课程中查看哪些活动实际显示在屏幕上?

2 个答案:

答案 0 :(得分:6)

您可以使用ActivityManager来获取此信息。以下是示例代码:

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);


 // get the info from the currently running task
 List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);

 Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());

 ComponentName componentInfo = taskInfo.get(0).topActivity;
 String packageName = componentInfo.getPackageName();

您的清单上需要以下权限:

uses-permission android:name="android.permission.GET_TASKS"

Source

答案 1 :(得分:0)

另一种方法是在自定义Application对象中创建一个名为“Activity lastActivityShown”的成员,并且在所有活动的所有onCreate中,您可以getApplication().setLastActivityShown(this)以这种方式不需要权限。您还可以创建具有此逻辑的BaseActivity,并使所有活动扩展此功能。