gpt4 book ai didi

android - 在 Android 中的导航堆栈顶部启动 Activity

转载 作者:行者123 更新时间:2023-11-30 04:11:57 24 4
gpt4 key购买 nike

我正在使用 TabHost 中的 Activity 实现 TabActivity 的解决方案,如 http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html 中所述.我意识到这是次优的,但我已经在这条路上走得很远了,只剩下一个小问题了。我需要弹出到我正在管理的堆栈的顶部(使用 String 列表作为 Activity ID)并且我知道我可以使用以下方法获取此 Activity :

Activity current = getLocalActivityManager().getActivity(mIdList.get(0));

但是,我不知道“显示”当前的方法。

我知道我可以做到:

Activity current = getLocalActivityManager().getActivity(mIdList.get(1))
current.finish();

在堆栈上至少有两个 Activity 的情况下,这将产生预期的结果。但是,当只有一个时,它会非常严重地失败并出现 ArrayOutOfBoundsException

如何“显示”给定的 Activity ?

最佳答案

尝试用这种方式启动一个始终位于 Activity Stack 顶部的 Activity:

List<ActivityManager.RunningTaskInfo> processes1 = activityManager.getRunningTasks(1);
ComponentName componentInfo = processes1.get(0).topActivity;
String classname =processes1.get(0).topActivity.getClassName();
String packagename = processes1.get(0).topActivity.getPackageName();
if(classname.equalsIgnoreCase("com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME"))
{
Intent intent24 = new Intent(Intent.ACTION_MAIN).addCategory(
Intent.CATEGORY_LAUNCHER).setClassName("YOUR_PACKAGE_NAME",
"com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_FROM_BACKGROUND).setComponent(new ComponentName("YOUR_PACKAGE_NAME",
"com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME"));
getApplicationContext().startActivity(intent24);
}
else
{
//DONE SOMETHING HERE...
}

关于android - 在 Android 中的导航堆栈顶部启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com