如何确定Android中的“顶级”活动

时间:2014-02-20 16:07:54

标签: android android-activity

我们正在开发一个由几个不同活动组成的公平复杂的Android应用程序。有没有办法确定哪一个是当前的?

这似乎很简单,但我甚至不确定要搜索哪些关键字。

2 个答案:

答案 0 :(得分:1)

研究Application类并创建自己的扩展Application的自定义类。在应用程序类中,添加字段Activity currentActivity;

在您创建的每个Activity的onCreate()中,您应该

CustomApp app = (CustomApp)getApplication();
app.currentActivity = this;

或者更好地创建一个扩展Activity的BaseActivity,并使您的活动扩展BaseActivity,这样您就不需要在每个onCreate中编写它

您可以在任何地方查看最重要的活动。

此致

答案 1 :(得分:1)

这是我的方法:

ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
//Get the info from the currently running task.
List< ActivityManager.RunningTaskInfo > taskInfo = activityManager.getRunningTasks(1); 
Log.d(TAG, "TOP Activity ::" + taskInfo.get(0).topActivity.getClassName());

AndroidManifest.xml

中需要的权限
<uses-permission android:name="android.permission.GET_TASKS"/>

更多信息:How to get the current top most activity?