1

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

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

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

所以任何人都可以帮助我知道这一点吗?

4

2 回答 2

0

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

这里的例子

有一种从 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"
于 2013-01-09T07:29:59.060 回答
0

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

if (this instanceof ActivityClassYouGoingToStart) {
    // update UI
} else {
    // start new activity
}
于 2013-01-09T07:33:41.727 回答