【发布时间】:2012-10-09 00:03:48
【问题描述】:
我使用以下方法从名为 MainActivity 的 Activity 中调用名为 Activity1 的 Activity:
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
所以,当控件来到 Activity1 时。开始正常的活动生命周期。即 onCreate() 被调用等等。
当我在控件处于 Activity1 时单击后退按钮时。调用完成方法,该方法又调用 onDestroy(),现在控件返回到 MainActivity 屏幕。
@Override
public void onBackPressed() {
Log.d(TAG, "onBackPressed()");
finish();
}
下次我调用 Activity1 时。当我从上一次调用中调用 onDestroy(当我按下后退按钮时)时,再次调用 onCreate。
问题: 1.有没有办法在按下后退按钮时将控制权传递回MainActivity而无需调用“finish()”方法? 2.调用finish的问题,每次我从MainActivity调用Activity1,都会创建一个新的Activity1实例。那就是生命周期再次从 onCreate() 开始。 我不希望这种情况发生,因为这已成为主要的性能问题。
我正在寻找的要点是,当我第一次调用它时,我是否可以从恢复状态而不是 oncreate 启动activity1。
【问题讨论】:
-
对此不是 100% 确定,但是:当您第一次启动 Activity1 时,您不能使用 Main Activity 的 Activity 上下文实例化它并使用它来恢复 Main Activity 而不会破坏和重新创建它吗?跨度>
-
查看这个帖子,和你的一样,希望对stackoverflow.com/questions/12789648/…有帮助