开始一项新活动,但旧活动仍在继续?

时间:2014-03-22 06:57:46

标签: android android-intent android-activity

从我的活动中,我通过为它定义一个Intent来启动一个新的Activity。然后我开始新的活动。

现在假设在方法A中发生这种情况:

A {
    /*
     *
     *
     */
    startActivity(i);  // where i is the intent for new Acivity
    /*
     *
     *
     */
}

现在发生的事情是,即使在我开始之前,也会执行启动活动后的语句。 我想,当我开始的时候,我现在的班级会暂停“我”。开始,并且后来“我”结束了,这堂课从那时起恢复了?

是否可以这样做?

3 个答案:

答案 0 :(得分:0)

finish();后调用startActivity(i);或致电onDestroy()方法。

答案 1 :(得分:0)

您可以在startActivity()调用后立即调用finish(),但这会终止第一个活动。另一种方法是使用startActivityForResult()启动新活动,并将逻辑放在第一个活动中,以便在获得结果之前停止执行它正在执行的操作。结果将作为回调onActivityResult()。

这个question有一个很好的例子。

答案 2 :(得分:0)

这些活动存在于UI威胁中,并且无法阻止此威胁,因为Android内核可以保护此功能。

当您使用startActivity(i)启动新活动时,如果您在后退按钮中clic或者您调用onBackPressed(),则会再次显示旧活动。并且您可以在启动new之后覆盖此方法以关闭实际活动,如下所示:

@Override
public void onBackPressed() {
    Intent i = new Intent(this, ACTIVITYNAME.class );
    startActivity(i);
    this.finish();
}

如果您需要简历,需要回忆起第一项活动......

最后,也许是最好的选择,你可以使用startActivityForResult(),这是一个很好的例子:

How to manage `startActivityForResult` on Android?