从片段关闭应用程序会导致返回到父活动

Ham*_*dTB 2 android fragment

我尝试了几种方法来从片段内部结束应用程序,例如:

system.exit(1)
android.os.Process.killProcess(android.os.Process.myPid());
getActivity().finish();
Run Code Online (Sandbox Code Playgroud)

它是所有的片段代码;退出代码放在 exitDialog.setPositiveButton oncliklistener 上,在我的尝试中使用支持父活动而不是退出

package com.TB.mylistprojct;

import android.os.Bundle;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
public class ActFooter extends Fragment
{
    View            EMyView         =null;

    Button          BtnExit         =null;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater Inflater,ViewGroup Container,Bundle SavedInstanceState)
{
    View MyView=Inflater.inflate(R.layout.actfooter, Container,false);
    EMyView=MyView;
    InitialUI();
    return MyView;
}

public void InitialUI()
{
    BtnExit=(Button)EMyView.findViewById(R.id.Btn_exit);
    BtnExit.setOnClickListener(BtnExit_OnClick);
}

public OnClickListener BtnExit_OnClick=new OnClickListener()
{

    @Override
    public void onClick(View arg0)
    {
        AlertDialog.Builder exitDialog=new AlertDialog.Builder(getActivity());

        exitDialog.setTitle("Warning");
        exitDialog.setMessage("Exit Program");
        exitDialog.setPositiveButton("YSE", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface arg0, int arg1)
            {
                // Exit Code PUT Here
            }
        });
        exitDialog.setNegativeButton("NO", null);
        exitDialog.show();
    }
};
}
Run Code Online (Sandbox Code Playgroud)

但是应用程序返回到父活动

Dyn*_*yna 7

尝试这个:

getActivity().moveTaskToBack(true); 
getActivity().finish();
Run Code Online (Sandbox Code Playgroud)


Ham*_*dTB 7

最后我找到了解决方案

首先我在片段中添加以下代码

Intent intent = new Intent(getActivity(), ACTMain.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra("LOGOUT", true);
                startActivity(intent);

                getActivity().finish();
Run Code Online (Sandbox Code Playgroud)

在主要活动中(在 onCreate 函数中)我使用 if 语句检查状态并退出:)

        if (getIntent().getBooleanExtra("LOGOUT", false))
    {
        finish();
    }
Run Code Online (Sandbox Code Playgroud)