如何真正退出包含片段的活动?

时间:2016-05-04 10:39:30

标签: android android-fragments exit onbackpressed

我有3项活动 第一个A包含一个包含Spinner的片段A1 当我单击Spinner时,我将转到Activity B,其中包含一个Button。 当我点击按钮时,将转到活动C.

我挖掘了活动C的OnBackPressed

(
Super OnBackPressed()
Intent i = new intent (this,ActivityB.class)
Finish();
StartActivity i
}

我覆盖了活动B的OnBackPressed

(
    Super OnBackPressed()
    Intent i = new intent (this,ActivityA.class)
    Finish();
    StartActivity i
    }

我覆盖了活动A的OnBackPressed

(
Super OnBackPressed()
Finish();
}

我的问题是,当我在活动A中时,每次单击Android的返回按钮时,应用程序都不会退出并转到我的旧Spinner选项。
我必须点击几次才能真正退出。

当我在Fragment A1中时,只需点击Android返回按钮,我该怎么做才能离开应用程序?

4 个答案:

答案 0 :(得分:1)

您可以使用getActivity().finish();

中的Fragment

答案 1 :(得分:0)

您可以尝试在转移到其他活动之前完成当前活动。

例如:在活动A中,单击微调器,在内部单击,启动活动B,然后调用finish();这将启动活动B并完成活动A.

通过这种方式,您将最终完成一项活动。一旦你回复,你将直接退出申请。

答案 2 :(得分:0)

在活动A中,您可以执行此操作以确保清除后台堆栈,因此您的应用程序不会选择旧的微调器。

在你的onCLickListener

Context context = view.getContext();
Intent intent = new Intent(context, ActivityB.class);
startActivity(intent);
finish(); // call this to finish the current activity

或者您也可以在清单

中执行此操作
<activity android:name=".ActivityA" android:noHistory="true" ... />

答案 3 :(得分:0)

在处理片段时,始终使用getActivity(),而不是使用此文本或引用。你应该打电话

getActivity().finish();

从片段中完成您的活动。