Android 将当前活动设置为启动活动

Android 将当前活动设置为启动活动,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,我的应用程序在不同的活动之间切换,每个活动在切换到另一个活动后都会被终止。这一切都很好,但我想做的是,当用户关闭应用程序时(通过按后退键或其他方式),其最后一次运行活动是下次启动应用程序时 我试过 onSaveInstanceState(Bundle bundle) 。。。但这似乎不适用于其他活动 还有别的办法吗?我还考虑过直接编辑清单,但得出的结论是它可能不起作用,而且会非常脏。根据我的理解,例如,您有3个活动:ActivityA、ActivityB和ActivityC。如果用户通过Acti

我的应用程序在不同的活动之间切换,每个活动在切换到另一个活动后都会被终止。这一切都很好,但我想做的是,当用户关闭应用程序时(通过按后退键或其他方式),其最后一次运行活动是下次启动应用程序时

我试过

onSaveInstanceState(Bundle bundle)
。。。但这似乎不适用于其他活动


还有别的办法吗?我还考虑过直接编辑清单,但得出的结论是它可能不起作用,而且会非常脏。

根据我的理解,例如,您有3个活动:
ActivityA
ActivityB
ActivityC
。如果用户通过
ActivityB
退出应用程序,然后再次启动应用程序,则您希望先启动
ActivityB

你可以通过两种方式来实现这一点

首先,您可以有一个带有占位符的单个
活动
,占位符用于其中三个活动之一。然后,您可以根据需要替换片段

,您可以使用将上次打开的活动存储在首选项中。您可以在每个
ActivityX
onStart()
中执行此操作,并在确定要启动哪个活动时读取它

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

// save:
Editor edit = prefs.edit();
edit.putString("lastActivity", getClass().getName());
edit.commit();

// restore later:
String activityName = prefs.getString("lastActivity", YourActivityA.getClass().getName());
//如果(activityName==null)activityName=YourActivityA.getClass().getName();
///根据需要开始该活动

谢谢!这正是我所需要的,但是,这里有一个小错误:方法PreferenceManager.getString()需要两个参数,最后一个是默认值,因此不需要最后一行。不过,谢谢你,我不知道有这样的事情作为首选经理。。。