完成之前的活动后才开始新活动

时间:2014-09-16 13:40:21

标签: android android-intent android-activity

我想只在前一个Intent完成后才开始新的Intent,我该怎么做..

这里我想转到购买窗口,如果我已经注册,如果我不是,那么我应该在注册页面。通过单击注册按钮完成注册后,应该会出现购买窗口。

现在两个活动都开始了!!!

if (!registered) {
//goto registration window
new MainActivity().registerUser(getContext());

    }

    //goto book purchase window
    new MainActivity().showPurchaseWinsow(getContext());

}

registeruser()方法是:

public void registerUser(Context context) {
    Intent registerUser = new Intent(context, RegisterUser.class);
    context.startActivity(registerUser);
}

showPurchaseWindow是

public void showPurchaseWinsow(Context context) {
    Intent purchaseBook = new Intent(context, BookPurchaseMain.class);
    context.startActivity(purchaseBook);
}

它有什么问题......任何帮助请... 如何在完成注册窗口后才能启动purchaseWindow。

4 个答案:

答案 0 :(得分:1)

public boolean isRunning(Context ctx) {
    ActivityManager activityManager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

    for (RunningTaskInfo task : tasks) {
        if (ctx.getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName())) 
            return true;                                  
    }

    return false;
}

来源:How to know activity has been finished?

您可以从上面的代码中检查注册活动是否正在运行。如果活动没有直接运行,请调用purchaseActivity,在完成registerUserActivity之前调用purchaseActivity,即在registerUserActivity中

答案 1 :(得分:0)

转到您的registerUser活动 并在代码的末尾添加启动purchaseBook活动的意图

所以你在registerUser Activity

中添加它

修改

Intent purchaseBook = new Intent(this, BookPurchaseMain.class);
    this.startActivity(purchaseBook);

答案 2 :(得分:0)

您不应该创建MainActivity的实例。我不知道你的项目的布局是什么样的,但是你需要编写它以便你可以从一个活动中调用startActivity,或者像你一样拥有一个上下文。

if (!registered) 
{
    //goto registration window
    Intent registerUser = new Intent(context, RegisterUser.class);
    context.startActivity(registerUser);

    }

     //goto book purchase window
    Intent purchaseBook = new Intent(context, BookPurchaseMain.class);
    context.startActivity(purchaseBook);

}

答案 3 :(得分:0)

如果用户尚未注册,他将被定向到RegisterUSer!所以从registerUSer类中调用purchaseBook类,并在当前代码的else循环中调用现有的Purchasebook调用。

因此,如果注册了PurchaseBook类的用户将被调用。如果不是,他将指向RegisterUSer类,并在用户完成后从那里导航到他/她将在RegisterUSer类中调用的PurchaseBook类。