我想只在前一个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。
答案 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类。