我正在我的应用程序中打开一个链接,一旦按回去,我想显示HomePage以保留用户更多时间。我一直在努力做到这一点,但无法做到。我将homeLauncher Activity 作为我的首要任务以及baseActivity。

DeepLink点击>打开所需的 Activity >用户按下后退按钮>检查其上一次 Activity ,但不检查homeActivity>是,将用户导航到homeActivity。

尝试以下代码:

@Override
public void onBackPressed() {
ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);

if(taskList.get(0).numActivities == 1 && taskList.get(0).topActivity.getClassName().equals(this.getClass().getName())){
  //// This is last activity
}
else{
    //// There are more activities in stack
}

super.onBackPressed();
}

android - 如何查找 Activity 是否是堆栈中的最后一个 Activity-LMLPHP

我也尝试过isTaskRoot,但是结果是一样的。它没有给出正确的答案。请帮忙

最佳答案

使用isTaskRoot()方法。 (来自h9kdroid评论-here)

@Override
public void onBackPressed() {
   ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
   List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);

   if(isTaskRoot()){
     //// This is last activity
   } else{
     //// There are more activities in stack
   }

   super.onBackPressed();
}

10-08 17:23