我有6个按钮,对于前3个按钮我想开始相同的活动,而其他3个按钮分开新的活动。
因此,当我点击第一个按钮然后第二个按钮开始相同活动时会出现问题,因为我们无法从同一活动开始相同的活动。
所以我只需要知道天气我将要开始的活动是正在运行的活动,基于相同的活动然后我将更新一些UI内容,否则开始新的活动。
所以任何人都可以帮助我知道这个?
答案 0 :(得分: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"
答案 1 :(得分:0)
例如,您可以检查活动的类别(假设'this'是当前活动):
if (this instanceof ActivityClassYouGoingToStart) {
// update UI
} else {
// start new activity
}