我正在我的应用程序中打开一个链接,一旦用户按下返回按钮,我想展示主页以留住用户一段时间。我一直在尝试实现这一点,但无法做到。我得到了homeLauncher活动作为我的顶部和基础活动。
DeepLink 点击 > 打开所需的活动 > 用户按下返回按钮 > 检查是否是最后一个活动但不是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();
}
我也尝试了 isTaskRoot,但结果相同。它没有给出正确的答案。请帮忙。
Application
类中添加一个堆栈(假设你有自己的Application
类),并且每次在你的活动的onCreate
中将该活动放入应用程序的堆栈中,在onDestroy()
中弹出它们。这样,你就可以检查活动的状态。 - kha