我怎样才能回到之前的 activity,而不完成我当前的 activity

How can I go back to the previous activity, without finishing my current activity

基本上,我有一个 activity,其中包含视频会议应用程序的代码。我需要将其保留在后台。因此,当用户按下按钮时,我创建了一个 FloatingViewService,并将数据从我的 activity 发送到该 FloatingViewService。例如,我可以(这有效)开始一个新的意图,并使用它来浏览我的应用程序,而我以前的 activity 仍在工作,并将数据发送到 FloatingViewService。 现在我的问题是我不想开始随机 activity,但我想在开始通话之前返回到之前的 activity。 当我开始通话时,我会这样做:

   Intent intent = new Intent(HomeActivity.this, InCallActivity.class);
    intent.putExtra("url", "url");
    intent.putExtra("test", false);
    startActivity(intent);

注意!创建第二个 activity 后,如果我调用 finish,它将带我到我的主页 Activity。这太棒了。 但是我不想结束,我只是想转到 activity,从中调用我的 class。

我试过:moveTaskToBack(true); 但它会将应用程序发送到主屏幕。 我也做了这个代码:

 ActivityManager m = (ActivityManager) getSystemService(ACTIVITY_SERVICE );
    List<ActivityManager.RunningTaskInfo> runningTaskInfoList =  m.getRunningTasks(10);
    Iterator<ActivityManager.RunningTaskInfo> itr = runningTaskInfoList.iterator();
    while(itr.hasNext()){
        ActivityManager.RunningTaskInfo runningTaskInfo = (ActivityManager.RunningTaskInfo)itr.next();
        int id = runningTaskInfo.id;
        CharSequence desc= runningTaskInfo.description;
        int numOfActivities = runningTaskInfo.numActivities;
        String topActivity = runningTaskInfo.topActivity.getShortClassName();
        Log.i("","top activity: " + topActivity);
    }

认为我可以使用 FLAG_ACTIVITY_REORDER_TO_FRONT

从后台恢复 activity

但是,我没有取回 activity,这是为什么? 我得到的是:

12-06 13:17:54.213: D/HeartRateApplication(3168): top activity: com.vidyo.vidyocore.activities.WebViewActivity
12-06 13:17:54.213: D/HeartRateApplication(3168): top activity: com.google.android.launcher.GEL

但如果我真的完成了,显然我的家Activity就在那里,因为它让我回到了那里。为什么我没有从 运行 活动中得到它? 我该如何解决这个问题?

编辑:

有评论说我应该带着意图开始 activity。所以我觉得可能我不够清楚。 我无法启动默认 Activity 的意图。 这个 InCallActivity 有可能被多个活动调用。因此我需要知道它之前的 activity 是什么,所以我可以调用那个 activity 的意图,就像我说的 FLAG_ACTIVITY_REORDER_TO_FRONT 因此,使用 runningTaskInfo 的逻辑并没有为我提供整个后台堆栈。有没有另一种方法来获取 backstack,这样我就可以真正知道 activity 开始的原因?

使用 Intent.FLAG_ACTIVITY_CLEAR_TOP

启动 activity

也可以参考一下 this

String Activity name= getIntent().getStringExtra("mActivityName");

使用它来跟踪您的 activity 流量和名称。