我有一个围绕着主活动(主菜单)的应用程序。在每个其他应用程序中,都有一个指向此活动的选项菜单项。
最初,我总是在选中此项目时启动新的主活动。使用intent包,我确实告诉main activity,我在重新开始时所做的一些初始化是不必要的。
然而,我不太喜欢它的整体行为。我偶然发现了android:launchMode="SingleTask",这似乎有帮助:现在我不再总是重新创建我的主菜单活动;而且,如果我按下“后退”按钮,我会直接返回到主屏幕。这感觉非常像一个合适的“主菜单”。
我现在的问题是:如果我运行我的应用程序的另一个活动,按下主页按钮,然后重新打开我的应用程序(例如,使用“最后的应用程序”),那么我不会返回到最后一个活动,而是返回到主要的活动。另一个活动被销毁。
你知道我如何实现SingleTask的行为,而不是只能返回到一个活动吗?
发布于 2011-05-16 21:24:41
如果你的其他活动在Android中正常声明为活动默认值,那么回到你的应用程序应该会带你回到你离开的地方(使用硬件主页按钮)。
但是,请记住,Android系统在需要系统资源时会杀死应用程序。因此,当您转到其他应用程序时,您的应用程序可能已被终止。然后,当您返回到您的应用程序时,默认的启动器活动将重新启动,这是您的菜单活动。
要从任何活动返回到主要活动,请执行以下操作:
public static void goHome(Context context) {
final Intent intent = new Intent(context, HomeActivity.class); //give name of your main activity class here
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
}这将清除活动堆栈,并让您返回到主要活动。正如您声明的singleTop,它将把现有的主活动带到前台。标志Intent.FLAG_ACTIVITY_CLEAR_TOP将删除堆栈中位于主活动顶部的所有活动。(我假设您在同一个应用程序中)。
现在,您的所有其他活动只需要包括一个按钮,该按钮的单击侦听器调用方法goHome();
从你的主要活动,如果你按下硬件后退按钮,它应该会退出你的应用程序。
发布于 2011-05-16 20:48:08
为什么不在主活动创建的活动上调用finish()呢?这样,您就可以返回到主活动,而无需创建新的活动...
发布于 2011-05-16 20:58:40
我认为你应该在开始另一个活动之前保存你的活动的状态,然后在你每次返回上一个活动时恢复你的活动。从Android http://developer.android.com/guide/topics/fundamentals/activities.html查看活动生命周期
https://stackoverflow.com/questions/6017505
复制相似问题