如何检查我正在启动的活动是否正在运行的活动?

时间:2013-01-09 07:21:26

标签: android android-activity

我有6个按钮,对于前3个按钮我想开始相同的活动,而其他3个按钮分开新的活动。

因此,当我点击第一个按钮然后第二个按钮开始相同活动时会出现问题,因为我们无法从同一活动开始相同的活动。

所以我只需要知道天气我将要开始的活动是正在运行的活动,基于相同的活动然后我将更新一些UI内容,否则开始新的活动。

所以任何人都可以帮助我知道这个?

2 个答案:

答案 0 :(得分:0)

这是使用活动管理器完成此操作的好方法。 您基本上从活动管理器获取runningTasks。它将始终首先返回当前活动的任务。从那里你可以获得topActivity。

Example here

有一种从ActivityManager服务获取正在运行的任务列表的简单方法。 您可以请求在手机上运行的最大任务数,默认情况下,首先返回当前活动的任务。

完成后,您可以通过从列表中请求topActivity来获取ComponentName对象。

这是一个例子。

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;
   componentInfo.getPackageName();

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

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

答案 1 :(得分:0)

例如,您可以检查活动的类别(假设'this'是当前活动):

if (this instanceof ActivityClassYouGoingToStart) {
    // update UI
} else {
    // start new activity
}