我打算在一个链中启动3个活动(比如从主要打开的活动A,B和C,这对用户是可见的),但我无法找到一些方法在Android中如何做到这一点。不要问我为什么,我只需要这样做就可以恢复我的应用程序状态,以前的位置。
感谢您的任何想法
Waypoint
修改
好的,我尝试在For循环中打开活动,但它们没有正确打开。它们被链接,但只有当我按下后退按钮并且它们显示给我时才重新创建。我需要一些解决方案,导致:打开A,如果A打开检查是否需要打开B - >是的,打开B,检查是否需要打开C - >是的,打开C,无需打开其他活动 - >完成
答案 0 :(得分:0)
在开始任何活动之前,决定应该开始哪个活动。 让我们看看你的情况>>首先检查B,如果是,检查C,现在打开所需的1。
我理解可比数据在活动中,但正确的数据结构将始终允许您随时随地访问数据。
答案 1 :(得分:0)
对于将来的读者:如果您想以适当的后退堆栈开始活动,则应使用TaskStackBuilder
。
android:parentActivityName
属性来定义活动的自然层次结构TaskStackBuilder
的实例并调用addNextIntentWithParentStack()
,并向其传递您要开始的活动的意图。有关更多详细信息,请参见official documentation
答案 2 :(得分:-1)
您没有提供任何有关您尝试过的信息,因此我会给您最简单的答案:
方法startActivity(Intent intent)
,更多信息here。
编辑:嗯,这个怎么样?我现在周围没有SDK,但我可以提供一个概念。我不确定它是否有效,但我希望它会引导你进入灵魂。
让我们假设这是ActivityA的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (doINeedActivityB) {
Intent activityC = new Intent(this, ActivityC.class);
this.startActivity(activityA);
}
if (doINeedActivityC) {
Intent activityC = new Intent(this, ActivityC.class);
this.startActivity(activityC);
}
}
答案 3 :(得分:-1)
覆盖每项活动中的onResume
- 方法。在那里添加检查和活动的开始。
public void onResume() {
if( condition )
startActivity( intentForTheNextActivity );
}
condition
是您可能拥有的任何条件(在您的示例中,如果应该启动B,应该启动C等),intentForTheNextActivity
是链中以下活动的意图(例如,如果现在在A中,意图是B等。)。
我很难理解你正在尝试做什么。有时似乎它是一条链(A打开B,B打开C等等)有时似乎你想要一些随机流(A打开B,B打开A,A打开B,B打开C) - 这使得它真的很难给你一个具体的答案。
我能做什么,建议您阅读以下内容:
Starting Activities and getting results(特别是方法startActivityForResult和setResult)
如果您需要更多帮助 - 您需要更好地解释自己(可能使用图表或目前为止尝试过的示例代码)。