完成活动A&来自活动B的B并转到android

时间:2017-07-10 13:23:24

标签: android android-intent android-activity

我的Android应用程序中有三个活动:login,Main,user。

首先,我的应用程序以登录开始,然后转到Main(我打电话给#34; login.this.finish();") 在主要活动中,我有一个按钮进入用户活动而没有完成主要,在用户活动中我有"注销"按钮。

我想完成主要活动和用户活动,并在用户按下"注销"时进入登录活动。按钮,我该怎么做。

任何人都可以帮助我,谢谢大家。

3 个答案:

答案 0 :(得分:0)

更好的解决方案是,您应该使用startActivityForResult()替换startActivity()以进行活动转换。从logout userActivity中你只需设置一个结果,如果你正确处理它,你将在mainActivity中获得onActivityResult。然后你可以简单地完成mainActivity。

参考 https://developer.android.com/training/basics/intents/result.html

另一种方法是从onResume完成MainActivity,如果在从userActivity注销后调用onResume活动。

答案 1 :(得分:0)

再次启动活动并使用System.exit

startActivity(new Intent(this, Login.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
System.exit(0);

答案 2 :(得分:0)

我认为最好的方法是:

public void showLogin(Activity activity) {
        Intent intent = new Intent(activity, LoginActivity.class);
        ComponentName cn = intent.getComponent();
        Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
        activity.startActivity(mainIntent);
    }

但是,您需要将android支持库添加到您的项目中。 此外,您可以尝试使用意图标志Intent.FLAG_ACTIVITY_CLEAR_TOP进行注销:

public void showLogin(Activity activity) {
        Intent intent = new Intent(activity, LoginActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        activity.startActivity(intent);
    }

它通常有效,但并非总是如此。