我已经阅读了很多关于后台堆栈和任务的问题,但我没有在我的问题中得到正确的解决方案。我有一个问题,那就是我有一个多实例活动(在最明确的声明)。服务可以多次打开。这个活动有一个按钮,可以将用户带到另一个活动(让我们说结果活动),但在转移到结果活动之前,我真的想检查这个多实例活动是否有任何背景实例,我想检查一下,如果有活动,那么在转移到Result活动之前,我应该导航到此活动的另一个实例,直到用户访问了此活动的所有实例,并且一旦访问了所有实例,在最后一个实例上,用户现在可以导航到Result活动。那么我怎么能这样做,我已经阅读了下面的代码,但我不知道如何使用它。
// Get the Activity Manager
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
// Get a list of running tasks, we are only interested in the last one,
// the top most so we give a 1 as parameter so we only get the topmost.
List<ActivityManager.RunningTaskInfo> task = manager.getRunningTasks(1);
// Get the info we need for comparison.
ComponentName componentInfo = task.get(0).topActivity;
// Check if it matches our package name.
if (componentInfo.getPackageName().equals(PackageName))
return true;
// If not then our app is not on the foreground.
return false;
}
答案 0 :(得分:2)
做你想做的事的方法是
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_FROM_BACKGROUND);
startActivity(intent);
试试这个。这应该有用。
答案 1 :(得分:0)
您可以使用 FLAG_ACTIVITY_REORDER_TO_FRONT 将您的活动置于最前面。
Intent i = new Intent(getApplicationContext(),YourActivity.class);
i.setFlags(Intent. FLAG_ACTIVITY_REORDER_TO_FRONT );
startActivity(i);