startActivity每次都创建Activity的新实例

时间:2011-12-07 05:07:49

标签: android android-activity

我正在调用startActivity,使用外部类中的活动上下文将数据从一个活动传递到另一个活动。

这是我如何创建发送意图的一个示例:

public static Intent createSearchIntent(Context context, Class<?> cls) {
    Intent i = new Intent(ACTION_SEARCH, null, context, cls);
    return i;
}

这是我开始活动的方式:

mContext.startActivity(mIntent); 

编辑: 对不起,我错了所发生的事情。当我调用startActivity时,活动不会被销毁,但是我发送的活动总是让它的onCreate方法被调用,所以我猜测正在创建一个新的活动实例,而不是返回到暂停/停止的活动。

我怎样才能更改它以便我可以返回到暂停/停止的活动?

2 个答案:

答案 0 :(得分:8)

这是你需要使用标志的时候。要使之前启动的活动回到堆栈顶部,您需要将i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);标记添加到您的意图中,然后启动该活动 - startActivity(i)并将“i”作为意图名称。<登记/> 对于其他标志的列表,请查看here

答案 1 :(得分:4)

默认情况下,从活动A调用活动B不会破坏活动A本身,您看到的活动B显示在活动A上,屏幕重叠。您可以按Back按钮进行检查。

这是活动生命周期:http://developer.android.com/reference/android/app/Activity.html